دوره های آموزشی سایت دانشجویار

ویژگی های کوچک C# 8

Loading...
C# 8

ویژگی های کوچک C# 8 ، در این مقاله میخواهیم به این ویژگی ها بپردازیم. بسیاری از ویژگی ها در C# 8 وجود دارد که ناچیز گرفته شده است و به اصطلاح ویژگی های کوچک در سی شارپ محسوب می شوند.

ولی شاید همین ویژگی های کوچک در آینده به یک نسخه تبدیل شود.

در حالی که توجه ی همه به ویژگی استفاده از Interface و متغییر های Nullable است .

استفاده از اشاره گرهای تخصیص جدید به نام & & = و | | = در C# 8

در نسخه ی اولیه C# ، یک اشاره گر با یک اشاره گر دیگر ترکیب می کرد ، که شامل همه ی اشاره گرهای دوتایی مثل (+و&و غیره ) به جز این دو عملگر Boolean ای که (&& و || ) هستند و لیست عملگر ها را کامل می کنند.

رشته های Verbatim Interpolated در C# 8

رشته های verbatim با @ آغاز می شوند .ولی رشته های Interpolated با $ شروع می شوند.

اگر بخواهید از یک رشته که به صورت یکپارچه نوشته شود، چگونه باید بنویسید؟

آیا @& درست است یا &@ ؟ در حال حاضر یکی از این دو ، کار می کند و آن یکی را کامپایلر خطا می گیرد.

درک اینکه کدام درست است خیلی سخت است و اغلب یادآوری آن مشکل است .

ولی می توان برای مشکل بالا یک پشنهاد داد که هر وقت در ابتدا ،  verbatim آمد شما جمله را به این صورت بنویسید @$ و زمانی که اول Interpolated آمد شما به صورت @$ بنویسید اینگونه دیگر نیازی به یاد آوری ندارید.

استفاده از Using برای تطبیق ساختاری با IDispose در C# 8

Interface ها با کامپایلر سی شارپ رابطه دارند. و اغلب شما نیاز دارید که از abstract interface استفاده کنید و نیازی نیست که از ویژگی های خود زبان استفاده کنید می توانید با استفاده از api عمومی که شبیه abstract هست در کلاس خودتان استفاده نمایید.

مثال ساده ی این موضوع استفاده از foreach و IEnumerable است . اگر یک کلاس متدی به نام GetEnumerator دارد و یک شی را با متد MoveNext بر می گرداند می توانید از foreach استفاده کنید.

برای برگرداندن کلاس هایی که از یک لیست درست شده اند باید از <T> استفاده کنید تا سریع تر اجرا شود، به این ویژگی structural matching یا به اصطلاح تطبیق ساختاری می گویند.

عبارت using از structural matching یا همان تطبیق ساختاری استفاده می شود در ابتدا شاید به نظر تان برسد که استفاده از using غیر مفید است و استفاده از این جمله یک ref struct را بر می گرداند که interface ها قابل به پیاده سازی آن نیستند بنابر این شما باید از جمله ی using استفاده کنید.

متد های Extention با استفاده از Foreach , using در C# 8

با توجه به پیشنهاد قبلی و استفاده از کلاس GetEnumerator یا dispose که با استفاده از extention method و foreach و using ، respectively و … کار می کند ما می خواهیم در مورد یک ویژگی دیگر هم صحبت کنیم که در شرایط تخصصی از این روش استفاده می شود.

به عنوان مثال : می توانید با استفاده از متد Extention dispose یک شی را به کتابخانه اضافه کنید .

این پیشنهاداتی که ارائه کردیم رسمی نیستند و شما در هر جا که می توانید باید از using استفاده کنید.

استفاده از جمله ی Using

شما می توانید برای تعریف کردن یک شی از using استفاده کنید و یا اینکه هر کدام از این ها را در یک حوزه قرار بدهید و بعد ادامه ی کد خودتان را بنویسید در اینجا از using استفاده شده بدون تعریف کردن یک حوزه به صورت زیر:


using var a = new MyDisposable();
using var b = new MyDisposable();
using var c = new MyDisposable();

هر کدام از شی های زیر به صورت اتوماتیکی Disposable می شوند و به صورت معکوس هم انجام می شود .


using (var a = new MyDisposable())
using (var b = new MyDisposable())
using (var c = new MyDisposable())
{
    // Some code
}

در کد زیر همان طور که می بینید شما می توانید در وسط کد خودتان یک شی ایجاد نمایید که به صورت زیر است :


var results = myExcelReader.ReadResults(using new MyExcelSheet(excelFilePath));

یکی از معایب و یا انتقاد این است که شما نمی توانید از goto در کدهایتان استفاده کنید.



مطالب مرتبط
ديدگاه خود را ارسال کنيد


محبوب ترين ويدئو هاي انلاين
دوره برنامه نویسی فروشگاه اینترنتی
  • تعداد اعضا 80k
  • قيمت دوره۱۳۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...
دوره آموزشی سیستم ثبت سفارش آنلاین
  • تعداد اعضا 80k
  • قيمت دوره--
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...
دوره طراحی سیستم مدیریت مشتریان
  • تعداد اعضا 80k
  • قيمت دوره۶۵,۵۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...