یک شنبه 2 مهر 1396 - 11:57
8 ویژگی جدید در C # 6.0
ویژگی های مختلفی در C # 6.0 وجود دارد. ما در اینجا به 8 ویژگی مفید و مهم آن می پردازیم. بنابراین همراه ما باشید که این 8 ویژگی را بررسی کنیم.
بسمه تعالی
ویژگی های مختلفی در C # 6.0 وجود دارد. ما در اینجا به 8 ویژگی مفید و مهم آن می پردازیم. بنابراین همراه ما باشید که این 8 ویژگی را بررسی کنیم.
8 ویژگی جدید در C # 6.0
- Auto Property Initializers (آنالیز خودکار Property ها)
- using static (استفاده از متدهای Static)
- Null Conditional Operator (خطای Null)
- Exception Filters (فیلترهای خطا)
- await in Catch and Finally block (استفاده از await در Catch و Finally)
- index initializers (آنالیز مقادیر)
- Expression Bodied functions (توابع استفاده شده در بدنه برنامه)
- String Interpolation (فرمت رشته ها)
Auto Property Initializers
- این ویژگی اجازه می دهد تا شما به طور خودکار، یک مقدار اولیه به Property ها دهید. در نسخه قبلی C# این قابلیت در دسترس نبود.
public class Customer1
{
public Guid customerID1 { get; set; } = Guid.NewGuid();
}
using static
- این ویژگی اجازه می دهد که از ویژگی های استاتیک یک کلاس استفاده کنید. به صورت زیر:
using static System.Console;
//Before C# 6.0
Console.WriteLine("Hello");
//After C# 6.0
WriteLine("Welcome to C#");
ReadLine();
Null Conditional Operator
- خطای Null همیشه توسعه دهندگان را تهدید کرده است. در C # 6.0 این تهدید کمتر شده و دیگر جای نگرانی نیست.
Product objProduct = new Product();
if (string.IsNullOrEmpty(objProduct.ProductName))
{
objProduct = null;
}
// Before C# 6.0
WriteLine(objProduct != null ? objProduct.ProductName : "Product1");
// from C# 6.0 onwards
WriteLine(objProduct?.ProductName ?? "Product2");
public class Product
{
public string ProductName { get; set; } = string.Empty;
}
Exception Filters
- شما با استفاده از این ویژگی می توانید پیام های خطا را براساس انتخاب خود و نیازتان مشخص کنید.
string user1 = "user";
string user2 = "admin";
string loggedinUser = string.Empty;
try
{
if (loggedinUser == user1)
{
//Some action
//Exception occurred
}
else if (loggedinUser == user2)
{
//Some action
//Exception occurred
}
}
catch(Exception ex) when(loggedinUser == user2) // This exception for admin
{
WriteLine("Hi, There is some issue. Please contact super admin.");
}
catch(Exception ex)// This exception for other users
{
WriteLine("Hi, There is some issue. Please contact administrator");
}
await in Catch and Finally block
- این ویژگی به نظر بهتر از تمام ویژگی های دیگر است. چرا که استفاده از await در Catch و Finally در نسخه های قبل وجود نداشت اما از الان در C # 6.0 به راحتی می توان از آن استفاده کرد.
//Asynchronous programming in catch finally
public async void CalCDevision(int val1, int val2)
{
try
{
int res = val1 / val2;
WriteLine(res);
}
catch (Exception)
{
await CatchMethod();
}
finally
{
await FinallyMethod();
}
}
private async Task CatchMethod()
{
WriteLine("Exception occured");
}
private async Task FinallyMethod()
{
WriteLine("Finally Executed");
}
index initializers
- تغییرات این ویژگی در کد زیر کاملاً مشخص است. (دستورات دیکشنری کاملاً عوض شده است.)
//Dictionary initialization Before C# 6.0
var WebPageError = new Dictionary {
{ 404, "Page Not Found" }, { 301, "Moved Permanently" },{ 404, "Internal Server Error" }};
//After C# 6.0
var webPageError = new Dictionary
{
[404] = "Page Not Found",
[301] = "Moved Permanently",
[500] = "Internal Server Error"
};
Expression Bodied functions
- C # 6.0 به ما اجازه می دهد یک تابع را به عنوان یک عبارت بنویسیم. اگر قطعه کد زیر را ببینید اختلافات را متوجه خواهید شد.
//Before C# 6.0
public static int AddNumbers(int x, int y)
{
return x + y;
}
//C# 6.0 onwards
public static int Add2Numbers(int x, int y) => x + y;
String Interpolation
- روش نوشتن فرمت رشته ها در C # 6.0 کاملاً تغییر کرده است. قطعه کد زیر را ببینید:
string message = "Hi {0}, Welcome to {1}.";
string userName = "User";
string sitename = "SharePointCafe.net";
//Before C# 6.0
string output = string.Format(message, userName, sitename);
WriteLine(output);
//C# 6.0
message = $"Hi {userName}, Welcome to {sitename}.";
WriteLine(message);
ReadLine();
بنابراین، می توان این 8 ویژگی را جزو بهترین و مهمترین قابلیت های سی شارپ 6.0 دانست. ما بزودی فیلم های مرتبط با این قسمت را نیز در اختیار شما قرار خواهیم داد.
منبع: sharepointcafe.net
"منتشر شده در سایت ABLY"