آموزش برنامه نویسی

آموزش سی شارپ

آموزش سی شارپ

پربیننده ترین مطالب
پیوندهای روزانه

برنامه نویسی مبحثی است که همه افراد علاقه مند به دنیای فناوری اطلاعات و ارتباطات به آن اشتیاق دارند. گاهی این علاقه آنقدر زیاد می شود که فرد تصمیم می گیرد تا شروع برنامه نویسی  کند. اما وقتی وارد دنیای برنامه نویسی می شوند با کوهی از سوالات و زبان های مختلف روبرو میشوند که انتخاب راه برای آنها بسیار سخت می شود.

از کدام زبان برنامه نویسی شروع کنم ؟ کدام زبان برنامه نویسی بهتر است ؟ کدام زبان برنامه نویسی پول ساز تر است؟ و … در این مقاله با چندین فاکتور مهم برای شروع برنامه نویسی آشنا می شویم تا کمکی برای شما در انتخاب راه باشد تا بتوانید در مسیری درست قدم بردارید.

تا حالا خیلی ها پرسیدن برنامه نویسی رو از کجا شروع کنم چی بخونم چقدر بخونم چطور پیش برم جواب های کم و بیش قانع کننده ای رو گرفتن و به همین خاطر بر این شدم تا چند خطی راجع به اینکه چطور میشه یه برنامه نویس خوب شد و چطور شروع کنیم و مختصری راجع به زبان های روز دنیا بنویسم امید است مورد توجه دووستان قرار بگیره و دوستانی که میخوان راهی رو انتخاب کنن راحت تر بتونن تصمیم بگیرن.

Image

در قسمت پایانی آموزش برنامه نویسی  به زبان سی شارپ با مبحث Exception ها و مدیریت استثناها در زبان سی شارپ آشنا می شویم، بروز خطا در برنامه امری اجتناب نا پذیر است و یک برنامه نویس موظف است که خطاها را به درستی در برنامه ها مدیریت کرده و زمان بروز خطا، پیغامی مناسب به کاربر نمایش دهد. در زبان سی شارپ، به خطاها Exception یا استثنا می گویند. در برنامه های کامپیوتری خطاها بر دو دسته اند:

در ادامه مباحث آموزشی زبان سی شارپ، در این قسمت به بررسی نکات تکمیلی Generic ها پرداخته و با یکسری از کلاس های Generic موجود در کتابخانه دات نت آشنا می شویم. در ابتدا به بررسی Constraint ها خواهیم پرداخت که به ما اجازه اعمال محدودیت در نوع داده انتخابی برای جایگاه های Generic را می دهند. برای مثال، مد زیر را در نظر بگیرید:

public class GenericType<T>
{
    public T Property { get; set; }
}

در ادامه آموزش برنامه نویسی به زبان سی شارپ، با مبحث Generics آشنا خواهیم شد. همزمان با بزرگ تر شدن پروژه ای که در حال کار کردن بر روی آن هستید، باید تکنیک هایی را در کد نویسی استفاده کنید که به شما اجازه استفاده مجدد از کدهای نوشته شده را می دهند. یکی از روش های استفاده مجدد از کدهای موجود در موقعیت های مختلف استفاده از قابلیت Generic ها می باشد. این قابلیت به شما اجازه می دهد تا نوع Data Type فیلد ها، خصوصیات و ... برای کلاس ها را زمان ساختن شئ از روی کلاس مشخص کنید. دوستانی که با زبان ++C آشنا هستند، قابلیت Generics در زبان سی شارپ، معادل قابلیت Template ها در زبان ++C است. قابلیت Generics از نسخه 2 به زبان سی شارپ اضافه شد.

ابتدا بیایید ببینیم دنیای بدون Generic ها در زبان سی شارپ چگونه است؟ فرض کنید کلاسی تعریف می کنیم که یک مقدار از نوع int رو داخل خودش نگهداری می کنه:

با قسمت بیست و ششم از سری آموزشی برنامه نویسی به زبان سی شارپ در خدمت شما دوستان عزیز هستیم. همانطور که در قسمت قبلی گفتیم، در این قسمت قصد داریم تا با مفاهیم Boxing و Unboxing آشنا شویم که مربوط به بحث تبدیل نوع ها به یکدیگر می شود.


Boxing


همانطور که در قسمت های قبلی گفتیم، سی شارپ یک زبان سئ گرا است، یعنی ما می توانیم بوسیله کلاس ها شئ های مورد نظر خود را ایجاد کنیم. بوسیله کلاس ها نوع های داده ارجاعی یا Reference Type ایجاد می شوند. همینطور با struct ها که وظیفه ایجاد Value Type ها را دارند آشنا شدیم. اما کلیه این نوع های داده از نوع داده object ارث بری می کنند، یعنی فرزند نوع داده object هستند که به صورت پیش فرض در کتابخانه دات نت تعریف شده اند. اگر توضیحی بخواهیم برای عملیات Boxing ارائه دهیم، عملیات تبدیل یک Value Type به نوع داده object را boxing می گویند. مثال:

int number = 12;
object boxed = number;

علاقه مندان مبحث شیرین برنامه نویسی، در خدمت شما هستم با قسمت بیست و پنجم از سری آموزشی برنامه نویسی به زبان سی شارپ. در این قسمت از آموزش با مبحث Operator Overloading و شیوه تعریف کردن Cast های دلخواه آشنا می شویم. ابتدا بهتره با مفهوم Operator Overloading آشنا شده و بعد به سراغ مثال های عملی بریم. Operator Overloading به معنی تعریف کردن نحوه عملکرد یک Operator بر روی یک شئ می باشد. برای مثال، عملگر های جمع، تفریق و ... را در نظر بگیرید، زمانی که ما عملگر جمع را بر روی دو متغیر از نوع int اعمال می کنیم، این عملگر باعث محاسبه حاصل جمع دو عدد می شود، یعنی حال جمع دو عدد را برای ما بر میگرداند:

int n1 = 12;
int n2 = 20;
int result = n1 + n2;

اما فرض کنید کلاسی به صورت زیر تعریف کردیم:

علاقه مندان به مبحث شیرین برنامه نویسی ، بعد از یک وقفه طولانی در خدمت شما هستم با قسمت بیست و چهارم از سری آموزشی برنامه نویسی به زبان سی شارپ. در این قسمت با مبحث Type Casting و انواع Cast ها در زبان سی شارپ آشنا بشیم. ابتدا یک توضیح اولیه راجع موضوع Type Casting بدم و بعد بریم سراغ مثال ها و کدها. همانطور که در قسمت های قبلی گفته شد، در زبان سی شارپ انواع نوع داده برای ذخیره مقادیر وجود دارد. برای مثال، نوع داده int برای ذخیره مقادیر عددی صحیح و نوع داده string برای نوع داده رشته استفاده می شود. اما بعضی اوقات هست که تصمیم داریم یک نوع داده را به یک نوع داده دیگر تبدیل کنیم. به تبدیل انواع داده به یکدیگر در زبان سی شارپ Type Casting می گویند. در قسمت های قبلی با یکی از این تبدیل ها آشنا شدیم: استفاده از متد Parse در نوع های داده اولیه. برای مثال زمانی که می خواستیم نوع داده رشته را به عددی تبدیل کنیم به صورت زیر عمل می کردیم:

int number = int.Parse("12");

سی شارپ و برنامه نویسی شئ گرا، با دو مفهوم بسیار مهم در برنامه نویسی آشنا خواهیم شد، IoC که مخفف Inversion of Control و DI که مخفف Dependency Injection هست.همه ما در طول زندگی با وسایل زیادی سر و کار داریم، از وسایل اولیه زندگی مانند ماشین، یخچال، تلویزیون و ... تا وسایل که هر کس بر اساس نیاز کاری خودش با اونها سر و کار داره، مانند کامپیوتر یا لپ تاپ و گوشی. برای مثال، گوشی هوشمند خود را فرض کنید، این گوشی از قطعات زیادی تشکیل شده، صفحه نمایش، پردازنده، حافظه رم، باتری و کلی قطعات دیگه. حالا اتفاقی پیش میاد و خدای نکرده گوشی شما از دستتون میافته و صفحه نمایش گوشیتون آسیب میبینه.

کاری که می کنید باید گوشی رو به یک نمایندگی برده و صفحه نمایش رو تغییر بدید. حالا فرض کنید که گوشی شما جوری طراحی شده باشه که با آسیب دیدن صفحه نمایش نیاز باشه تا یک گوشی جدید تهیه کنید!!!! یا برای کارتون یک لپ تاپ تهیه کردید. بعد از مدتی نیاز دارید تا حافظه رم لپ تاپ رو افزایش بدید. در این حالت شما لپ تاپ رو پیش نمایندگی یا یک کارشناس در این زمینه می برید و حافظه رم لپ تاپ شما افزایش داده میشه. حال فرض کنید که لپ تاپ شما همچین قابلیتی نداشته باشه و شما نیاز باشه برای تغییر یا ارتقا حافظه یک لپ تاپ جدید خریداری کنید! برای حل این مشکل لوازم الکتریکی از قطعات مختلفی تشکیل شدند که قابلیت تغییر یا تعویض دارند. به این قابلیت طراحی ماژولار گفته میشه. در پیاده سازی سیستم های نرم افزاری نیز شما نیز به عنوان برنامه نویس باید با همچین دیدی نسبت به پیاده سازی نرم افزار اقدام کنید. ما در اینجا در مورد تغییر یکی از قسمت های نرم افزار صحبت خواهیم کرد که ارتباط مستقیمی به interface ها و IoC و DI دارد.برای آشنایی بیشتر با این مفاهیم، با یک مثال جلو میرویم. فرض کنید سیستمی پیاده سازی کردید که اعضاء می توانند در این سامانه اقدام به ثبت نام کنند. برای عملیات های مرتبط با مدیریت اعضاء کلاسی با نام Members می نویسیم:

در قسمت قبلی سری آموزشی با مفهوم interface ها آشنا شدیم. interface ها نقش بسیار موثری در روند نوشتن یک برنامه بازی می کنند و در صورتی که یک برنامه نویس با نحوه استفاده صحیح از interface ها آشنا باشه، توانایی ایجاد کدهایی ساختاریافته و قابل گستری و نگهداری رو داره. در این قسمت از سری آموزشی زبان سی شارپ و برنامه نویسی شئ گرا، با دو مفهوم بسیار مهم در برنامه نویسی آشنا خواهیم شد، IoC که مخفف Inversion of Control و DI که مخفف Dependency Injection هست.همه ما در طول زندگی با وسایل زیادی سر و کار داریم، از وسایل اولیه زندگی مانند ماشین، یخچال، تلویزیون و ... تا وسایل که هر کس بر اساس نیاز کاری خودش با اونها سر و کار داره، مانند کامپیوتر یا لپ تاپ و گوشی. برای مثال، گوشی هوشمند خود را فرض کنید، این گوشی از قطعات زیادی تشکیل شده، صفحه نمایش، پردازنده، حافظه رم، باتری و کلی قطعات دیگه. حالا اتفاقی پیش میاد و خدای نکرده گوشی شما از دستتون میافته و صفحه نمایش گوشیتون آسیب میبینه.

کاری که می کنید باید گوشی رو به یک نمایندگی برده و صفحه نمایش رو تغییر بدید. حالا فرض کنید که گوشی شما جوری طراحی شده باشه که با آسیب دیدن صفحه نمایش نیاز باشه تا یک گوشی جدید تهیه کنید!!!! یا برای کارتون یک لپ تاپ تهیه کردید. بعد از مدتی نیاز دارید تا حافظه رم لپ تاپ رو افزایش بدید. در این حالت شما لپ تاپ رو پیش نمایندگی یا یک کارشناس در این زمینه می برید و حافظه رم لپ تاپ شما افزایش داده میشه. حال فرض کنید که لپ تاپ شما همچین قابلیتی نداشته باشه و شما نیاز باشه برای تغییر یا ارتقا حافظه یک لپ تاپ جدید خریداری کنید! برای حل این مشکل لوازم الکتریکی از قطعات مختلفی تشکیل شدند که قابلیت تغییر یا تعویض دارند. به این قابلیت طراحی ماژولار گفته میشه. در پیاده سازی سیستم های نرم افزاری نیز شما نیز به عنوان برنامه نویس باید با همچین دیدی نسبت به پیاده سازی نرم افزار اقدام کنید. ما در اینجا در مورد تغییر یکی از قسمت های نرم افزار صحبت خواهیم کرد که ارتباط مستقیمی به interface ها و IoC و DI دارد.برای آشنایی بیشتر با این مفاهیم، با یک مثال جلو میرویم. فرض کنید سیستمی پیاده سازی کردید که اعضاء می توانند در این سامانه اقدام به ثبت نام کنند. برای عملیات های مرتبط با مدیریت اعضاء کلاسی با نام Members می نویسیم: