آشنایی با امکانات و متدهای جدید در #C نسخه 6.0
شنبه 16 خرداد 1394نسخه جدید #C که تغییرات مفید و پرکاربردی نسبت به نسخه قبلی خود داشته ، برنامه نویسی را از نظر کیفیت بهبود چشمگیری بخشیده است ، در این مقاله قصد داریم به چند مورد از این تغییرات اشاره کنیم .
این تغیرات شامل :
1 - خاصیت Auto-property
2 - نام گذاری عبارات (name of expressions)
3 - عملگر شرطی Null
4 - فیلتر Exception
5 - ایجاد تاخیر در try, catch
6 - استفاده از فضای نام Static
خاصیت Auto-propert
به عنوان یک برنامه نویس ما با خاصیت auto-properties هر روز رویرو میشویم .این امکان جدید(auto-property) را معرفی میکنیم . خاصیت سازنده ای که حذف شده بود را اجرا میکند .این امکان جدید ، مقادیر را در هنگام تعریف خاصیت auto-property اجرا میکند .به مثال زیر توجه فرمایید :
public class Employee { public string FirstName { get; set; } = "John"; public string LastName { get; set; } = "Snow"; }
این امکان همچنین میتواند با خاصیت read-only استفاده شود (خواصی که فقط شامل متد get میباشند)
public string FirstName { get; } = "John";
نام گذاری عبارت (name of expression) :
در این قسمت با حالات مختلفی روبرو میشویم که در هر کدام باید یک رشته با نام مربوط به عنصر برنامه را ایجاد کنیم ،به عنوان مثال ، هنگامی که ArgumentNullException اجرا میشود ، ما به یک نام با پارامتر بی اعتبار احتیاج داریم ، یا اگر رویداد PropertyChanged را بخواهیم تغییر نام دهیم ، رشته ایجاد شده مستعد خطا میباشد و در زمان کامپایل می تواند شامل غلط املای باشد ، با استفاده از فضای نام expression ، کامپایلر نام ارجاع داده شده را بررسی می کند .
if (obj == null) throw new ArgumentNullException(nameof(obj));
عملگر شرطی Null
این عملگر ، مقادیر Null را قبل بکار گیری ، یررسی میکند ، این عمل به شما اجازه می دهد ، به مقادیری دسترسی داشته باشید که Null هستند
int? _count = employees?.Count(); // returns null if employees are null else count
عملگر شرطی Null با عملگر Null-coalescing برای تخصیص دادن برخی مقادیر پیش فرض در طورت بازگرداندن مقدار Null می تواند استفاده شود .
int _count = employees?.Count() ?? 0; //returns 0 if the employees are null
فیلتر Exception
این امکان از قبل در #C و VB.Net آماده استفاده بود .استفاده از یک فیلتر Exception میتوان مشخص شود و اگر شرط در قسمت catch قرار می گیرد .در این مورد شرط مقدار true را فقط ارزیابی میکند و در صورت صحت آن به قسمت بعدی که catch می باشد می رود .مانند مثال زیر :
try { } catch(exception ex) if(ex.Message == “Test”) { // this will execute only if the if statement evaluates to true }
ایجاد تاخیر درمتد Try/Catch
با استفاده از #C نسخه 6.0 یک امکان جدید برای مدیریت exception افزوده شده است .اکنون ما میتوانیم از Await در متد آخر catch استفاده کنیم .
try { } catch(Exception ex) { await LogAsync(ex); }
استفاده از فضای نام Static
در آخرین نسخه #C نوعی دیگر از عبارتی که معرفی شده بود، استفاده میشود و برای دسترسی مستقیم اعضا استفاده میشود .
using System.Console; namespace MyConsoleApp { class Sample { static void Main(string[] args) { WriteLine(“Hello!!!”); } } }
- C#.net
- 2k بازدید
- 4 تشکر