PDA

View Full Version : 10 ویژگی برتر C#.NET 6



MortezaGity
یک شنبه 16 فروردین 1394, 18:03 عصر
در قسمت اول از سری آموزشی “ویژگی های جدید سی شارپ 6″ از وبسایت پرووید در خدمت شما هستیم. به ادامه ی مطلب بروید.
نسخه ی ششم از سی شارپ قرار است که با ویژوال استادیو 2015 وارد عرصه ی برنامه نویسی شود. در هنگام نوشتن این آموزش، ویژوال استادیو 2015 Preview در دسترس است. این سری آموزشی قصد دارد شما را با ده ویژگی برتر سی شارپ 6 آشنا کند.
اولین ویژگی جدید سی شارپ 6 استفاده از یک کامپلیر جدید به نام Roslyn است. این یک کامپایلر Open Source است که داری قابلیت گسترش (Extensibility) است. به علاوه، ویژگی دیگر کامپلیر Roslyn در سی شارپ، طراحی آن به عنوان یک سرویس است. در واقع Compiler as a Service متدلوژی است که با استفاده از آن کامپایلر Roslyn پیاده سازی شده است.
جالب است بدانید که کامپایلر Roslyn در زبان ویژوال بیسیک نیز مورد استفاده قرار می گیرد. بنابراین، هم سی شارپ و هم ویژوال بیسیک دست خوش تغییر در کامپایلر خود شده اند.

MortezaGity
یک شنبه 16 فروردین 1394, 18:04 عصر
به عنوان دومین ویژگی جدید از سی شارپ ورژن 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) کد را بالا می برد و هم زیبا تر است.

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

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

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



این موضوع باعث می شود که کد نویسی شما تمیزتر و حجم آن به مراتب کمتر شود.

MortezaGity
یک شنبه 16 فروردین 1394, 18:05 عصر
به عنوان چهارمین ویژگی جدید سی شارپ 6 قصد داریم از قابلیت فیلتر کردن استثناها (Exception Filtering) نام ببریم. با استفاده از این قابلیت می توانید نوع استثنایی که قصد مدیریت آن را دارید در بلاک های 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);
}
}

MortezaGity
یک شنبه 16 فروردین 1394, 18:05 عصر
به عنوان پنجمین ویژگی جدید سی شارپ 6 قصد داریم از امکان استفاده از Await در بلاک های Catch و Finally یاد کنیم. با استفاده از کلمه ی کلیدی Await در قسمت های Catch و Finally یک رول مدیریت استثنا می توانید مدیریت استثناها را به صورت غیرهمزمان (Asynchronous) انجام دهید. بنابراین، اگر در برنامه ی شما خطایی رخ دهد می تواند روال fallback آن را بصورت غیرهمزمان انجام دهید. به کد زیر دقت کنید:

public async void Process()
{
try
{
Processor processor = new Processor();
await processor.ProccessAsync();
}
catch (Exception exception)
{
ExceptionLogger logger = new ExceptionLogger();
// Catch operation also can be aync now!!
await logger.HandleExceptionAsync(exception);
}
}

MortezaGity
پنج شنبه 20 فروردین 1394, 15:08 عصر
در قسمت ششم از سری آموزشی “ویژگی های جدید سی شارپ 6″ از وبسایت پرووید در خدمت شما هستیم. به ادامه ی مطلب بروید.
به عنوان ششمین ویژگی جدید سی شارپ 6 قصد داریم به امکان تعریف کردن پارامتر out یک متد در هنگام فراخوانی متد صحبت کنیم. در ورژن های قبلی سی شارپ، هنگامی که قصد فراخوانی متدی را داشتید که پارامتر ورودی out دریافت می کرد، مجبور بودید قبل از فراخوانی متد، پارامتر out را تعریف کنید. در ورژن ششم از سی شارپ می توانید به راحتی در هنگام فراخوانی متد مربوطه، پارامتر out آن را نیز تعریف کنید. به کد زیر دقت کنید:

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

return false;
}


منبع: وبسایت پرووید (http://provid.ir/)

MortezaGity
پنج شنبه 20 فروردین 1394, 15:08 عصر
در قسمت هفتم از سری آموزشی “ویژگی های جدید سی شارپ 6″ از وبسایت پرووید در خدمت شما هستیم. به ادامه ی مطلب بروید.
به عنوان هفتمین ویژگی جدید سی شارپ 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;
}


منبع: وبسایت پرووید (http://provid.ir/)

MortezaGity
پنج شنبه 20 فروردین 1394, 15:09 عصر
در قسمت هشتم از سری آموزشی “ویژگی های جدید سی شارپ 6″ از وبسایت پرووید در خدمت شما هستیم. به ادامه ی مطلب بروید.
به عنوان هشتمین ویژگی جدید سی شارپ 6 قصد داریم به قابلیت مقداردهی اولیه به پروپرتی های اتوماتیک (Auto-Property Initializer) اشاره کنیم. پروپرتی های اتوماتیک در ورژن های قبلی سی شارپ نیز موجود بودند. در واقع این پروپرتی ها نیازی به یک متغیر محلی (Back Field) ندارند. در بسته ی جامع آموزش سی شارپ و همچنین برنامه نویسی شی گرا در سی شارپ به این موضوع ها پرداخته ایم.
و اما با این قابلیت جدید سی شارپ 6، برنامه نویس می تواند این پروپرتی ها را مقداردهی اولیه کند. به کد زیر دقت کنید:

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


منبع: وبسایت پرووید (http://provid.ir/)

MortezaGity
پنج شنبه 20 فروردین 1394, 15:10 عصر
در قسمت نهم از سری آموزشی “ویژگی های جدید سی شارپ 6″ از وبسایت پرووید در خدمت شما هستیم. به ادامه ی مطلب بروید.
به عنوان نهمین ویژگی جدید سی شارپ 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";
}


منبع: وبسایت پرووید (http://provid.ir/)

MortezaGity
جمعه 21 فروردین 1394, 06:49 صبح
در قسمت دهم از سری آموزشی “ویژگی های جدید سی شارپ 6″ از وبسایت پرووید در خدمت شما هستیم. به ادامه ی مطلب بروید.
به عنوان دهمین ویژگی جدید سی شارپ 6 قصد داریم به قابلیت نوشتن متدهای تک خطی اشاره کنیم. در نسخه های قبلی سی شارپ برای نوشتن متدهای کوتاه یک خطی باید دقیقاً از الگوی نوشتن یک متد استفاده می کردیم که حاوی brace باز و بسته ({}) هستند.
در نسخه ی ششم از سی شارپ، می توانیم متدهای کوتاه تک خطی را به صورت ساده و سریع به شکل زیر بنویسیم:


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


منبع: وبسایت پرووید (http://provid.ir/)