8 ویژگی جدید در C # 6.0

8 ویژگی جدید در C # 6.0

ویژگی های مختلفی در C # 6.0 وجود دارد. ما در اینجا به 8 ویژگی مفید و مهم آن می پردازیم. بنابراین همراه ما باشید که این 8 ویژگی را بررسی کنیم.

new features in c sharp

بسمه تعالی

ویژگی های مختلفی در 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"

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس