C# یک زبان برنامه نویسی شی گرا است که توسط مایکروسافت ایجاد شده است.
در ابتدا C# از لحاظ ساختاری خیلی به Java و بیشتر از آن به C++ نزدیک بود اما رفته رفته و با توسعه این زبان برنامه نویسی جدید، تفاوتها بیشتر و بیشتر شدند.
در دنیای زبانهای برنامه نویسی، اصطلاحی وجود دارد به نام زبانهای خانواده C؛ دلیل این نامگذاری، شباهت ظاهری (Syntax) زبانهای عضو این خانواده به زبان C است. خیلی از زبانهای برنامه نویسی مشهور این روزها مثل C، C++، Objective-C، PHP، C#، Java و حتی زبان بسیار جدید Swift عضو این خانواده هستند. بنابراین به نظر میرسد اگر یکی از این زبانها را بلد باشید، کارتان برای یادگیری دیگری آسانتر خواهد بود.
در زمانهای که همه چیز با یک ساعت پیش از خود متفاوت است، حالا که میدانیم C# در واقع پیش از شروع قرن ۲۱ ساخته شده است، آیا میتوانیم نتیجه بگیریم که C# پیر شده و بهتر است سراغ یک زبان تازه نفستر مثل Swift برویم؟ قطعا خیر، C# تا به امروز بارها به روز شده است. نسخه 7.1 زبان C# به تازگی منتشر شده است. از نظر من C# یک جوان ۳۰ ساله است که به اندازه کافی جوان و به اندازه کافی با تجربه است.
شی گرا چیست؟
در ابتدای این مقاله، گفتم که C# یک زبان برنامهنویسی شی گرا است. برای اینکه توضیح بدهم دقیقا یک زبان شی گرا چیست، ابتدا باید بدانیم در زبانهای غیر شیگرا چه میگذرد. زبانهای غیر شی گرا از دو موجودیت «داده» و «عملیات» تشکیل میشوند. یعنی کل یک نرم افزار، مثل نرم اپلیکیشن اندروید، iOS یا هر نرم افزار دیگری که روی کامپیوترهای شخصی اجرا میشوند، از چندین عملیات (Function) که یک یا چند داده (Data) میگیرد ساخته شده که این function تغییرات لازم را روی آن دادهها اعمال میکند و داده جدید را به function قبلی بر میگرداند.
مثلا فرض کنید که ما دو داده نام و نام خانوادگی داریم:
نام: آروین
نام خانوادگی: خالق زاده
عملیات مورد نظر ما ساخت نام کامل فرد است:
عملیات: نام + نامخانوادگی = آروین خالق زاده
این یک نمونه ساده از شیوه کار زبانهای غیر شیگرا بود. حالا فرض کنید بخواهیم همین عملیات را در C# که یک زبان شی گرا است پیاده کنیم. ما دیگر با دو داده مجزا طرف نیستیم. یک شی وجود دارد به نام انسان، انسان دارای یک نام کوچک و یک نام خانوادگی است. از پیش برای شی انسان مشخص کردهایم – به وسیله یک function – که چطور نام کامل میسازد. مقادیر محمد و اژدری را به شی انسانی که ساختهایم ارسال میکنیم، حالا یک انسان داریم که نام کامل دارد.