بررسی ویژگی های سی شارپ ۷.۰

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

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

سی شارپ ۷.۰

  • قابلیت حمل
  • زمان اجرای پیشرفته (زباله روبی – garbage collection)
  • سازگاری آسان
  • دسترسی محلی
  • اجرای سریع
  • قابلیت اعتماد
  • ویژگی های قدرتمند (reflection و dependency injection)
  • برنامه نویسی آسنکرون و غیرهمزمان

ویژگی های سی شارپ ۷.۰ با فرمت مختصر و کوتاهتر برای استفاده گسترده تری می آیند. این ویژگی ها در گستره وسیعی از محیط های برنامه نویسی علاوه بر طیف موبایل، پردازش سروری، سیستم های تعبیه شده (embedded) و دسکتاپ قابل حمل هستند. در این پیش نمایش، ویژگی ها بسیار مشخص بوده نگه داری کد در آن بسیار ساده است. در زیر برخی از این ویژگی ها معرفی شده اند:

  • برگرداندن چند مقدار به عنوان خروجی
  • تطابق الگو: بهبود بلاک های Switch
  • تطابق الگو: تجزیه
  • نوع Tuple به عنوان Mutable
  • بهبود کلاس های partial
  • توابع محلی
  • رشته های باینری
  • برگرداندن Ref به عنوان خروجی

نیازی به اعلان متغیرها نیست – درسی شارپ ۷.۰ هیچ نیازی به اعلان متغیرها در خارج از متدی که متغیرها را از آن می گیرید، نیست. فقط باید قبل از این متغیر از کلمه کلیدی out استفاده کرده و بعدا در خارج متد از این متغیر استفاده نمایید. بنابراین، این متغیر می تواند به طور مستقیم به عنوان یک آرگومان مانند یک پارامتر تعریف شود.

سی شارپ 7.0

کلمات Wildcard برای نادیده گرفتن پارامترهای out – این ویژگی هم می تواند مانند ایده استفاده از outعالی باشد، استفاده از * پارامترهای out را نادیده می گیرد.

سی شارپ 7.0

مکانیستم تطابق الگو در سی شارپ ۷.۰ – این مکانیسم به طور کلی جدید است که در ورژن ۷  که در حال حاضر برای بررسی کردن اشیا در سه نوع استفاده می شود:

  • الگوهای ثابت به شکل c (که c یک عبارت ثابت در C# است)، که بررسی می کند ورودی وارد شده برابر با c هست یا خیر.
  • الگوهای نوع داده به شکل T x (که T یک نوع داده و x یک شناسه است)، که بررسی می کند که ورودی از نوع T است و سپس، مقدار ورودی را گرفته و در یک متغیر جدید x از جنس T می ریزد.
  • الگوهای var به شکل var x (که x یک شناسه است)، که همیشه مطابقت دارد و به سادگی مقدار ورودی را با همان نوع داده ورودی در متغیر جدید x می ریزد.

سی شارپ 7.0

Switch case توسعه یافته برای استفاده انواع اشیا – قبل از این switch case فقط برای داده های اولیه استفاده می شد، اما حالا می توان از داده های سفارشی نیز در آن استفاده کرد، مانند مثال زیر:

سی شارپ 7.0

Tupleهای توسعه یافته در سی شارپ ۷.۰ – Tuple ها به صورتی توسعه یافته اند که کار کردن با آن ها بسیار ساده تر شده است. حالا حتی می توانید توابع tuple تعریف کرده و به صورت آسان تری مقدار خروجی را برگردانید. C# ، Tuple را به عنوان نوع داده مقداری پیشنهاد کرده است.

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

01 <strong>var</strong> sum = (۵, ۲۰);

 

نکات مهم درباره tupleها:

  • نام عناصر را می توان به صورت رشته های tuple مشخص نمود.
  • عناصر آن ها فیلدهای public و mutable هستند.
  • دو Tuple می توانند کد hash مشابهی داشته باشند.

سی شارپ 7.0

ساختارشکنی tuple ها – ساختارشکنی تعریف به یک نحوه نگارش برای جدا کردن یک tuple (یا هر مقدار دیگر) به بخش های سازنده آن یا تخصیص دادن این بخش ها به صورت جداگانه به متغیرهای جدید، گفته می شود.

سی شارپ 7.0

در این صورت، می توان متغیرها را به حالت های مختلفی مانند:

  • متغیر var درون پرانتز
  • متغیر var بیرون پرانتز
  • تخصیص با روش ساختارشکنی ((first, middle, last) = StudentName (studId1) 😉

تعریف تابع در بدنه متد – اگر تابع فقط در یک متد استفاده شود، می توان آن را در بدنه متد تعریف کرد.

سی شارپ 7.0

توابع محلی، توابعی هستند که ما در توابع دیگر تعریف می کنیم. در حال حاضر نمی توان یک delegate را درون تابع محلی تعریف کرد.

بهبود رشته ها – C# ۷.۰ امکان استفاده از جداکننده ارقام درون رشته های عددی را می دهد، که باعث خوانایی بیشتر رشته های باینری می شود.

سی شارپ 7.0

علاوه بر رشته های باینری می توان از الگوهای بیتی نیز استفاده کرد.

سی شارپ 7.0

Ref توسعه یافته، نوع داده بازگشتی ref – تا به حال، تنها می توانستیم یک پارامتر را با نوع ref ارسال کنیم. اما حالا، می توان آن ها را هم به عنوان داده ارجاعی برگرداند و هم به عنوان داده ارجاعی ذخیره کرد. بنابراین، نمی توان یک داده ارجاعی را به یک متغیر محلی برگرداند.

 

01 <strong>var</strong> a = ref FourthElement(myArray)
02  
03 a = ۱۰; //MyArray[4] now equals ۱۰

 

سی شارپ 7.0

اعضای بیشتر در عبارات دارای بدنه – در این ورژن، می توان destructorها را به بدنه عبارت اضافه کرد. اعضای عبارات دارای بدنه هم برای متدها و هم برای property ها قابل استفاده هستند.

سی شارپ 7.0

Throw کردن exception درون عبارت – حالا می توان درون یک عبارت یا در میان آن (در یک جای مشخص) یک exception را throw کرد.

 

سی شارپ 7.0

این ها ویژگی های جالب سی شارپ ۷.۰ هستند.

 

منبع سایت ام اس پی سافت و سایت نیازسیستم