ده ویژگی برتر در سی شارپ 6

پرووید

دسته های مقالات

در این پست از وبسایت پرووید در رابطه با ده ویژگی برتر در سی شارپ 6 صحبت خواهیم کرد. سی شارپ یکی از بهترین و محبوب ترین زبان های برنامه نویسی شی گرا است.

سی شارپ یک زبان برنامه نویسی ساده و در عین حال قدرتمند و شی گرا می باشد. در رابطه با مفهوم شی گرایی در آموزش شی گرایی OOP در سی شارپ از وبسایت پرووید بیشتر صحبت کرده ایم. با استفاده از زبان سی شارپ می‌توان گستره وسیعی از نرم افزار ها را از جمله نرم افزارهای تحت وب، نرم افزار های تحت ویندوز، نرم افزار های کنسولی و حتی نرم افزارهای دستگاه‌ های موبایل را با استفاده از ویژوال استودیو ساخت. ضمناً توصیه می کنیم که از آموزش رایگان برنامه نویسی با زبان سی شارپ نیز دیدن کنید.

استفاده از یک کامپلیر جدید به نام Roslyn

اولین ویژگی جدید سی شارپ 6 استفاده از یک کامپلیر جدید به نام Roslyn است. این یک کامپایلر Open Source است که داری قابلیت گسترش (Extensibility) است. به علاوه، ویژگی دیگر کامپلیر Roslyn در سی شارپ، طراحی آن به عنوان یک سرویس است. در واقع Compiler as a Service متدلوژی است که با استفاده از آن کامپایلر Roslyn پیاده سازی شده است.

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

الحاق رشته ها (String Interpolation)

به عنوان دومین ویژگی جدید از سی شارپ ورژن 6 باید از الحاق رشته ها (String Interpolation) صحبت کنیم. در ورژن های قبلی از سی شارپ، با استفاده از متد String.Format و یک سری Placeholder می توانستیم رشته ها را الحاق کنیم.

به کد زیر دقت کنید.

 
static void Main(string[] args)
{
   string name = "Robert";
   string car = "Audi";
   WriteLine("{0}'s favourite car is {1}!", name, car);
}

در نسخه ی ششم از سی شارپ می توانیم تنها با ذکر نام متغیرها آنها را الحاق کنیم. کد زیر این موضوع را نشان می دهد:

 
static void Main(string[] args)
{
   string name = "Robert";
   string car = "Audi";
   WriteLine("{name}'s favourite car is {car}!");
}

بدون شک استفاده از نام متغیر هم قابلیت خوانایی (Readability) کد را بالا می برد و هم زیبا تر است. در آموزشکدنویسی تمیز: نوشتن کد برای انسان ها در رابطه با این مفاهیم بیشتر صحبت کرده ایم.

نام کلاس های استاتیک در Using

به عنوان سومین ویژگی جدید از سی شارپ ورژن 6 قصد داریم در رابطه با استفاده از نام کلاس های استاتیک در Using ها یاد کنیم. در ورژن ششم از سی شارپ می توانید از نام کلاس های استاتیک شبیه Namespace ها در کنار جملات Using استفاده کنید. به کد زیر دقت کنید:

 
using System;
// A static class inclusion
using System.Console;

namespace CSharp6Demo
{
   class Program
   {
      static void Main(string[] args)
      {
         WriteLine("Console. is not required
            as it is included in the usings!");
      }
   }
}

این موضوع باعث می شود که کد نویسی شما تمیزتر و حجم آن به مراتب کمتر شود. ضمناً آموزش رایگان برنامه نویسی با زبان سی شارپ می تواند به عنوان یک راهنمای بسیار کامل و کاربردی برای یادگیری برنامه نویسی با زبان سی شارپ به شما کمک می کند. موضوعات مطرح شده در این سری آموزشی بسیار کاربردی و با اهمیت هستند. این سری آموزشی به صورت رایگان بر روی سایت پرووید منتشر شده است.

قابلیت فیلتر کردن استثناها (Exception Filtering)

به عنوان چهارمین ویژگی جدید سی شارپ 6 قصد داریم از قابلیت فیلتر کردن استثناها (Exception Filtering) نام ببریم. در این رابطه توصیه می کنیم که از آموزش دیباگ کردن Debugging در سی شارپ از وبسایت پرووید استفاده کنید.

با استفاده از این قابلیت می توانید نوع استثنایی که قصد مدیریت آن را دارید در بلاک های Catch ذکر کرده و آنها را فیلتر کنید. به عنوان مثال، کد زیر قصد دارد تمامی استثناها به جز SqlException را هندل کند.

به قسمت if در catch دقت کند:

 
public async void Process()
{
   try
   {
      DataProcessor processor = ne
   }
   // Catches and handles only non sql exceptions
   catch (Exception exception) if(exception.GetType()
      != typeof(SqlException))
   {
      ExceptionLogger logger = new ExceptionLogger();
      logger.HandleException(exception);
   }
}

امکان تعریف کردن پارامتر out یک متد در هنگام فراخوانی متد

به عنوان ششمین ویژگی جدید سی شارپ 6 قصد داریم به امکان تعریف کردن پارامتر out یک متد در هنگام فراخوانی متد صحبت کنیم. در ورژن های قبلی سی شارپ، هنگامی که قصد فراخوانی متدی را داشتید که پارامتر ورودی out دریافت می کرد، مجبور بودید قبل از فراخوانی متد، پارامتر out را تعریف کنید. در ورژن ششم از سی شارپ می توانید به راحتی در هنگام فراخوانی متد مربوطه، پارامتر out آن را نیز تعریف کنید.

به کد زیر دقت کنید:

 
public bool ConvertToIntegerAndCheckForGreaterThan10
   (string value)
{
if (int.TryParse(value, out int convertedValue) && convertedValue > 10)
   {
      return true;
   }

   return false;
}

تابع سازنده ی اصلی (Primary Constructor)

به عنوان هفتمین ویژگی جدید سی شارپ 6 قصد داریم به تابع سازنده ی اصلی (Primary Constructor) اشاره کنیم. تابع سازنده ی اصلی تابعی است که می تواند پارامترهای ورودی خود را در سطح تعریف کلاس دریافت کند.

این تابع سازنده فقط در سطح کلاس تعریف می شود و در هنگام ساختن یک شی از کلاس فراخوانی می شود. کاربرد ویژه ی تابع سازنده ی اصلی در مقداردهی اولیه به پروپرتی ها می باشد. به کد زیر دقت کنید:

 
// Primary constructor
class Basket(string item, int price)
{
   // Using primary constructor parameter values
   // to do auto property initialization.
   public string Item { get; } = item;
   public int Price { get; } = price;
}

قابلیت مقداردهی اولیه به پروپرتی های اتوماتیک (Auto-Property Initializer)

به عنوان هشتمین ویژگی جدید سی شارپ 6 قصد داریم به قابلیت مقداردهی اولیه به پروپرتی های اتوماتیک (Auto-Property Initializer) اشاره کنیم. پروپرتی های اتوماتیک در ورژن های قبلی سی شارپ نیز موجود بودند. در واقع این پروپرتی ها نیازی به یک متغیر محلی (Back Field) ندارند. در آموزش شی گرایی OOP در سی شارپ و همچنین آموزش سی شارپ دات نت در ویژوال استادیو در سی شارپ به این موضوع ها پرداخته ایم.
و اما با این قابلیت جدید سی شارپ 6، برنامه نویس می تواند این پروپرتی ها را مقداردهی اولیه کند. به کد زیر دقت کنید:

 
class PeopleManager
{
public List { get; } =
      new List() { "Employee", "Managerial"};
}

یک عملوند جدید در دستورات شرطی

به عنوان نهمین ویژگی جدید سی شارپ 6 قصد داریم به یک عملوند جدید در دستورات شرطی اشاره کنیم. در ورژن های قبلی سی شارپ، قبل از استفاده از یک شی و یا پروپرتی های آن باید حتماً Null نبودن آن را چک می کردیم تا با خطای Null Reference روبرو نشویم.

به کد زیر دقت کنید:

 
private void GetMiddleName(Employee employee)
{
   string employeeMiddleName = "N/A";

   if (employee != null && employee.EmployeeProfile
      != null)
      employeeMiddleName =
         employee.EmployeeProfile.MiddleName;
}

در نسخه ی ششم از سی شارپ دستور بالا را می توان به راحتی با استفاده از عملوند ؟ به صورت زیر نوشت:

 
private void GetMiddleName(Employee employee)
{
   string employeeMiddleName =
      employee?.EmployeeProfile?.MiddleName ?? "N/A";
}

قابلیت نوشتن متدهای تک خطی

به عنوان دهمین ویژگی جدید سی شارپ 6 قصد داریم به قابلیت نوشتن متدهای تک خطی اشاره کنیم. در نسخه های قبلی سی شارپ برای نوشتن متدهای کوتاه یک خطی باید دقیقاً از الگوی نوشتن یک متد استفاده می کردیم که حاوی brace باز و بسته ({}) هستند.

در نسخه ی ششم از سی شارپ، می توانیم متدهای کوتاه تک خطی را به صورت ساده و سریع به شکل زیر بنویسیم:

 
class Employee
{
   // Method with only the expression
   public static int
      CalculateMonthlyPay(int dailyWage)
      => dailyWage * 30;
}

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *