معرفی #C نسخه 7.0

سه شنبه 7 دی 1395

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

معرفی  #C نسخه 7.0

همه ما کاملا با نسخه های قبلی از#C، که ویژگی های  بسیار مفید زبان، برای حذف یک کد unexeptional و شفاف کردن کد ما هستند آشنا هستیم. امروزه برنامه نویسان نمی خواهند که با خطاهای کد و یا نوشتن کد اضافی رنج  ببرند - آنها یک محیط برنامه نویسی مناسب که در آن، آنها می توانند از کد ساده استفاده کنند،میخواهند . ما می توانیم برخی از ویژگی های #C را مشاهده کنیم :

• قابلیت حمل

• جمع آوری زباله (garbage collection)

• سازگاری ساده

• دسترسی بومی

• اجرای سریع

• قابل اطمینان(نوع ایمن)

• ویژگی های قدرتمند(reflection and dependency injection)

• برنامه نویسی غیر همزمان

7.0 #C با ویژگی های  فرمت فشرده و کوتاه  برای استفاده گسترده آمده است.

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

• بازگشت چند مقدار(Multi-value Returns)

• تطبیق الگو :بلاک سوئیچ پیشرفته

• تطبیق الگو: تجزیه

• tuple به عنوان یک نوع تغییر پذیر

• افزایش Partial Class

• تابع های local

• حروف باینری (Binary Literals)

• Ref Returns

تعریف متغییر وجود ندارد_ در   C # 7.0 تعریف متغییر وجود ندارد،خارج از هر متد شما میتوانید آن را بگیرید.

فقط شما برای انجام این کار نیازمند اضافه کردن out قبل از متغییر و استفاده بعد از آن دارید.

بنابراین می توان آن را به طور مستقیم  به عنوان یک پارامتر را اعلام کرد.

نویسه عام برای نادیده گرفتن پارامتر های خارجی_این کاملا یک مکانیسم جدید است،که در  7.0#C معرفی شده است که برای بررسی object در سه نوع استفاده میشود.

• الگوهای ثابت از فرم C، که آزمون (که در آن c یک عبارت ثابت در C # است) که برابری ورودی را با C بررسی میکند.

• الگوهای نوع شکل T X (که در آن T یک نوع است و x یک شناسه است)،که ورودی داری t را بررسی میکند، اگر چنین بود،مقدار ورودی را به یک متغییر جدید x از نوع t،وارد(extract) میکند.

• الگوهای VAR از فرم ور X،  (که در آن x یک شناسه است) که همیشه منطبق هستند و به سادگی مفدار یک ورودی را در یک متغییر جدید با نوع یکسان قرار میدهد.

Switch Case ها به استفاده از نوع های object مختلف گسترش داده شده اند.

در قبل Switch Case ها فقط برای نوع های اولیه استفاده میشدند،اما  الان به استفاده از نوع های custom قادر هستند.

چند مثال را در زیر میبینیم :

چند تایی های(tuples) توسعه یافته_ tuple ها الان بیشتر friendly شده اند.شما میتوانید تابع های tuple را تعریف کنید و به روش راحت تری آنهارا برگشت دهید.

#C یک تاپل را value type تعریف کرده است.

برای ساختن یک تاپل ،میتوانید از این گرامر استفاده کنید.

    var sum = (5, 20);  

در اصل  tuple ها :

• شما می توانید نام عنصر در لیترال تاپل را مشخص کنید

• المنت هایشان public و فیلد هایشان تغییر پذیر هستند.

• دو  tuple می توانند کد hash یکسانی داشته باشند.

ساختارشکنی تاپل_  تعریف ساختارشکنی عبارت است از گرامر برای جدا سازی یک tuple به چندین بخش و سپس نسبت دادن این بخش ها به متغییر های جدید است.

شما می توانید از متغیرها در رفتار های مختلف استفاده کنید :

• var در داخل پرانتز

• var خارج از پرانتز

• ساختار شکنی  assinment

(first, middle, last) = StudentName (studId1)

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

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

ارتقاء Literal_

7.0 #C اجازه میدهد یک عدد برای خوانایی بیشتر با یک Literal جدا سازی شوند.

همچنین برای باینری هم صادق است.

گسترش Refrence؛ شما میتوانید return by ref داشته باشید_

تا آلان ما قادر به فرستادن refrence ها در یک پارامتر بودیم.الان میتوانیم آن هارا return کنیم به عنوان یک refrence. بنابراین شما نمیتوانید یک refrence را به متغییر محلی return کنید.

    var a = ref FourthElement(myArray)  
    a = 10; //MyArray[4] now equals 10  

عضو های بیشتر expression bodied_

شما میتوانید یک  destructo به expression bodies اضافه کنید.

عضو های expression bodied برای متد ها و property ها موجود هستند.

رویدادن خطا در expression_ شما میتوانید در داخل expression یا وسط expression، یک throw exception کنید.

آموزش سی شارپ

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 2k بازدید
  • 14 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید