آموزشنرم افزار

معرفی کامل زبان C شارپ

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

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

 

زبان برنامه نویسی C شارپ چیست؟

اگر بخواهیم زبان برنامه نویسی را تعریف کنیم، می توان به تعریف زیر رجوع کرد:

“زبان C شارپ (#C) یک زبان برنامه نویسی ای است که کامپایلر، سطح بالا، شی گرا، ساخت یافته، رویداد محور و تابعی می باشد”.

کامپایلر بودن

اما این ویژگی هایی که گفته شد به چه معنایی هستند؟. ویژگی اول زبان C شارپ، کامپایلر بودن یا همگردان بودن است. کامپایلر در واقع یک برنامه یا مجموعه ای از برنامه ها است که زبان سطح بالا یا به عبارت دیگر زبانی که یک برنامه نویس می نویسد را می گیرد و به زبان سطح پایین یا سطح ماشین ترجمه می کند. این کار باعث می شود تا برنامه ای که برنامه نویس نوشته است، ماشین بتواند آن را اجرا نماید و خروجی مطلوبی را به ارمغان بیاورد.

زبان سطح بالا

منظور از سطح بالا بودن برنامه C شارپ این است که هرکسی می تواند آن را یاد بگیرد و برنامه نویسی انجام دهد. شاید برایتان سوال شود که اگر بتوان زبان برنامه نویسی سطح بالا را یاد گرفت، پس آیا یادگیری زبان سطح پایین نیز آسان است و هرکسی می تواند یاد بگیرد؟. در اصل باید گفت که زبان سطح پایین، زبانی است که برای انسان نامفهوم است و نمی توان آن را متوجه شد و به همین دلیل است که زبان های برنامه نویسی همگی سطح بالا می باشند.

شی گرا

شی گرا بودن یک زبان برنامه نویسی یعنی تمامی توابع و کد هایی که درون آن برنامه تعریف می گردند به یک “شی” باز میگرذند. برای مثال، حساب بانکی شما مجموعه ای متشکل از اطلاعات متنوع مانند نام، سن، شماره ملی و … می باشد و مجموعه این اطلاعات به “شی” که همان حساب بانکی شماست باز می گردد و به همین دلیل نمی توان آن را دست کاری کرد و امنیت آن را مختل نمود.

ساخت یافته

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

رویداد محور

رویداد محور بودن زبان C شارپ به معنای آن است که تمامی کد هایی که یک برنامه نویس می نویسد، به یک دیگر متصل بوده و منجر به ایجاد یک رویداد می شود. مثلا زمانی که یک فرد در کامپیوتر خود بر روی آیکونی کلیک می کند در واقع اول می بایست نشانگر موشواره (موس) به سمت آن آیکون کشیده شود، سپس بر روی آیکون کلیک و سپس آن آیکون به اجرا در بیاید. این ها یک سری از اتفاقات به هم متصل است که منجر به یک رویداد می شود و این به معنای رویداد محور بودن می باشد.

 

تاریخچه

تاریخچه C شارپ

 

زبان برنامه نویسی C شارپ در سال 2000 توسط شرکت مایکروسافت به بازار معرفی گردید. این زبان برنامه نویسی در اصل زیر شاخه دات نت (NET.) و برگرفته از زبان برنامه نویسی C بود. اما جالب است که بدانید، زبان برنامه نویسی C شارپ در ابتدا این نام را نداشت و سرپرست گروه، آقای آندرس هالسبرگ، که می خواستند C شارپ را تولید کنند، ابتدا نام آن را COOL گذاشته بودند که مخفف “C like Object Oriented Language” بود. اما زمانی که مایکروسافت می خواست در ژوئیه 2000 این زبان را به بازار عرضه کند، نام آن را به C شارپ تغییر داد، و طبق گفته شرکت مایکروسافت به خاطر دلایل تجاری نام COOL مناسب این برنامه نبود و اجبار به تغییر نام آن شدند.

اما زبان C شارپ تا الان دست خوش تغییرات زیادی بوده و نسخه های زیادی برای آن به بازار عرضه شد که هر یک ویژگی های خاص خودش را داشت. ویژگی های هر یک از نسخه ها به قسم زیر می باشد:

نسخه 2.0

  • جنریک ها
  • نوع های جزئی
  • نوع های ناشناس و Nullabe (خالی)
  • دسترسی های Getter/Setter
  • Delegate ها (متدها) و استنباط آن ها
  • کلاس های استاتیک

نسخه 3.0

  • متغیر های محلی با کلاس های مشخص
  • مقدار دهنده های اولیه Object‌ و Collection
  • خصوصیات اجرا شده خود کار
  • متدهای Extension و جزئی
  • عبارات Query و Lambda

نسخه 4.0

  • اتصال های دینامیک
  • آرگومان های اختیاری و نام گذاری شده
  • جنریک Co-variance و Contrivance
  • نوع های Embedded Interrupt

نسخه 5.0

  • خصیصه های Caller Info
  • متدهای ناهمگام

نسخه 6.0

  • Roslyn: کامپایلر به عنوان یک سرویس
  • فیلترهای استثنا
  • وارد کردن اعضای نوع استاتیک به Namespace
  • گسترش دهنده Null
  • عملگر nameof
  • درون یابی رشته ای

نسخه 7.0

  • تفکیک کننده های رقم
  • توابع Local
  • نوع های سوییچ (Swith Type)
  • تاپل های نام گذاری شده
  • تطبیق الگو

نسخه 7.1

  • Async اصلی
  • عبارات پیش فرض Literal

نسخه 7.2

  • مرجع های معنایی به همراه متغیرهای ارزش دار
  • آرگومان های نام گذاری نشده

نسخه 7.3

  • دسترسی به زمینه های ثابت بودن پین
  • تغییر دوباره متغیرهای محلی ref

همانطور که مشاهده کردید، 7 نسخه اصلی برای زبان C شارپ به بازار عرضه گردید و در هر کدام، ویژگی هایی برای آن لحاظ گردید. این موضوع نشانگر آن است که این نرم افزار دارای پیچیدگی زیادی است و می توان با آن بسیاری از پروژه های بزرگ را کنترل و مدیریت کرد.

 

کاربرد و نیاز به C شارپ

c-sharp-usage

 

زبان C شارپ بخاطر قدرتمندی، انعطاف پذیری بالا و پشتیبانی قوی ای که دارد توانسته جایگاه خیلی بالایی را برای خود کسب نماید. طبق جدیدترین آمار داده شده، 31% برنامه نویسان و توسعه دهندگان برنامه نویسی از زبان C شارپ استفاده می کنند و جایگاه چهارم را در بین محبوب ترین برنامه نویسی کسب نموده است.

این موضوع باعث شده که زبان C شارپ در سراسر دنیا ارزش بالایی پیدا کند و نیاز به استخدام متخصصین در این حوزه نیز همانطور زیاد بشود. طبق آمار های رسمی، ماهیانه 17 هزار شغل C شارپ در دنیا درخواست می شود و میانگین درآمد این افراد به 72 هزار دلار سالیانه می رسد. این رقم در ایالات متحده به 92 هزار دلار می رسد و یکی از پردرآمد ترین شغل های دنیا می باشد.

اما از کجا این محبوبیت و نیاز به شغل C شارپ ایجاد می شود؟. آیا C شارپ قادر به انجام پروژه های مختلف می باشد؟. شاید بهتر باشد به مثال هایی در این زمینه بتواند این ابهام را برطرف سازد. زبان C شارپ در پروژه های مختلفی همچون اپلیکیشن های اتوماسیون سازی، سیستم های مدیریت ایمیل، گسترش سیستم های بازی، طراحی سیستم برای خدمات پزشکی و … مورد استفاده قرار می گیرد و این موضوع باعث شده که تنوع کاری در زبان برنامه نویسی C شارپ بسیار بالا برود.

برای مثال، یکی از معروف ترین موتور های بازی “Unity Game Engine” نام دارد که پایه های این موتور گرافیکی توسط C شارپ طراحی شده است. تقریبا یک سوم بازی های معروف توسط موتور گرافیکی Unity طراحی شده است و گفته شده که این بازی ها نزدیک به 770 میلیون گیمر فعال دارند، از طرفی، خیلی از “واقعیت مجازی ها” یا Virtual Reality ها توسط C شارپ طراحی گردیده که خود نشان دهنده گستردگی عملیاتی نرم افزار C شارپ می باشد.

 

یادگیری زبان C شارپ

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

 

تفاوت بین ++C و C شارپ

difference-between-c-sharp-and-plus

 

خیلی از کسانی که می خواهند وارد بازار برنامه نویسی بشوند، همیشه در این شک هستند که کدام برنامه را (++C یا C شارپ) بهتر یا بدتر است. از آنجا که هر دوی آنها ریشه ای مشترک دارند و توسط شرکت مایکروسافت تولید شده اند، شاید در نگاه اول این دو برنامه نویسی یکسان دیده شوند ولی در واقع اختلاف هایی با یکدیگر دارند، اما از طرفی شباهت هایی نیز با یکدیگر دارند. پس بهتر است ببینیم که این 2 برنامه نویسی چه اشتراکات و چه تفاوت هایی با یکدیگر دارند.

اشتراکات:

زبان C پایه C شارپ می باشد و به همین دلیل Syntax های آنها نیز یکسان می باشد. از طرفی، کد هایی که درون این 2 زبان نوشته می شود به طور کلی یکسان است، که باعث شده کتابخانه های آنها نیز شباهت زیادی را داشته باشند. ولی اگر بخواهیم به طور خلاصه اشتراکات را دسته بندی کنیم، می توان به 2 مورد اشاره کرد.

  • شی گرا:

هم زبان ++C و هم C شارپ کلاس های یکسان، Inheritance و Polymorphism یکسانی دارند.

  • زبان های کامپایلی:

هر دوی این زبان ها، زبان های کامپایلی می باشند. این بدین معناست که هر کدی که در فضای برنامه نویسی نوشته می شود در ابتدا می بایست به زبان باینری ترجمه گردد تا کامپیوتر بتواند آن را به اجرا در بیاورد.

تفاوت ها:

با این که در پایه ترین مسائل، زبان ++C و C شارپ شباهت هایی دارند ولی اختلافات و تفاوت های آن بسیار بیشتر از اشتراکات آن می باشد. موارد زیر به تفاوت های این دو اشاره می کند:

  • فضای گرفته شده توسط باینری:

با اینکه هر دوی این زبان ها کامپایلری می باشند اما C شارپ بخاطر پیچیدگی بیشتری که دارد، قسمت باینری آن بسیار سنگین تر از قسمت ++C می باشد.

  • عملکرد:

به طور کلی زبان ++C به مراتب سریع تر از C شارپ می باشد و این موضوع حائز اهمیت است زیرا زمانی که سرعت یک پروژه یا برنامه باید بالا باشد، حتما می بایست از ++C استفاده نمود.

  • بخش زباله:

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

  • نوع پروژه ها:

زبان ++C معمولا برای افزایش عملکرد بخش سخت افزاری کامپیوتر نوشته می شود؛ برای مثال برنامه نویسی های بخش سرور، اپلیکیشن، بازی (گیمینگ) و شبکه توسط برنامه نویسی ++C نوشته می شوند ولی C شارپ معمولا برای طراحی وب سایت، موبایل یا دسکتاپ لحاظ می گردد.

 

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

احسان نعنایی

عضوی کوچک از مجموعه بزرگ نت ران !
خبرنامه
Notify of
guest
0 نظرات
Inline Feedbacks
View all comments

نوشته های مشابه

دکمه بازگشت به بالا