آشنایی با امکانات و متدهای جدید در #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 تشکر