آموزش ده ویژگی برتر در سی شارپ ۶

آموزش ده ویژگی برتر در سی شارپ ۶

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

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

ضمناً توصیه می کنیم که از آموزش کامل توسعه نرم افزار با سی شارپ نیز دیدن کنید.

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

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

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

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

به عنوان دومین ویژگی جدید از سی شارپ ورژن ۶ باید از الحاق رشته ها (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

به عنوان سومین ویژگی جدید از سی شارپ ورژن ۶ قصد داریم در رابطه با استفاده از نام کلاس های استاتیک در 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)

به عنوان چهارمین ویژگی جدید سی شارپ ۶ قصد داریم از قابلیت فیلتر کردن استثناها (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 یک متد در هنگام فراخوانی متد

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

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

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

   return false;
}

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

به عنوان هفتمین ویژگی جدید سی شارپ ۶ قصد داریم به تابع سازنده ی اصلی (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)

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

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

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

به عنوان نهمین ویژگی جدید سی شارپ ۶ قصد داریم به یک عملوند جدید در دستورات شرطی اشاره کنیم. در ورژن های قبلی سی شارپ، قبل از استفاده از یک شی و یا پروپرتی های آن باید حتماً 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";
}

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

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

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

class Employee
{
   // Method with only the expression
   public static int
      CalculateMonthlyPay(int dailyWage)
      => dailyWage * 30;
}
مرتضی گیتی
بدون نظر

ارسال نظر

نظر
نام
ایمیل
وب سایت