Notice: file_put_contents(): Write of 5679 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 12288 of 17967 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
Web Devs@fullStackDevs P.281
FULLSTACKDEVS Telegram 281
#CSharp
#CSharp8
🌐🌐🌐 ویژگی های جدید C# 8.0 (قسمت دوم)
لینک قسمت اول : https://www.tgoop.com/ABlueDeveloper/278
Ranges and indices
اضافه شدن نوع Index برای زمانی که نیاز به ایندکس گذاری دارید ، شما میتونید از این نوع تایپ استفاده کنید و بصورت Int مقدار دهی کنید و یا قبل مقدار int از ^ استفاده کنید برای گرفتن مقدار ایندکس از اخر (prefix) . در واقع از این به بعد هرجا نیاز دارین که از کالکشنی با index ، value آن ایتم را بگیرید ، ویرایش یا پر کنید از index باید استفاده کنید.

Index i1 = 3;  // number 3 from beginning
Index i2 = ^4; // number 4 from end
int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine($"{a[i1]}, {a[i2]}"); // "3, 6"

همچنین یک نوع محدوده معرفی شده که شامل دو Index است، یکی برای شروع و یک برای پایان، و می تواند با یک عبارت x..y نوشته شود.با توجه به مثال قبل به مثال زیر توجه کنید:
var slice = a[i1..i2]; // { 3, 4, 5 }

Default implementations of interface members

در حال حاضر هنگامی که یک Interface را نوشتید و استفاده میکنید ،دیگر نمی توانید Member به آن را اضافه کنید بدون اینکه کلاسهایی که استفاده کردند تغییری ندهند.
در C # 8.0 به شما اجازه داده میشود در واقع یه Member رو Overload کنید . حالا دیگر تمام کلاس هایی که این interface را impelement کردند نیازی نیست حتما definition اون member رو بنویسند و از همون default impelementation که قبلا بود استفاده میکنند . به مثال زیر توجه کنید :

 interface ILogger
{
void Log(LogLevel level, string message);
void Log(Exception ex) => Log(LogLevel.Error, ex.ToString()); // New overload
}

class ConsoleLogger : ILogger
{
public void Log(LogLevel level, string message) { ... }
// Log(Exception) gets default implementation
}

کلاس ConsoleLogger نیازی به پیاده سازی Log (Exception) از ILogger نیست، زیرا متد با اجرای پیش فرض اعلام شده است.

حالا شما میتوانید Members های جدید رو به interface هاتون با خیال راحت با default implementation اضافه کنید بدون اینکه نیاز باشه تو هر جایی که از این interface استفاده کردید تغییری ایجاد کنید.




@ABlueDeveloper



tgoop.com/fullStackDevs/281
Create:
Last Update:

#CSharp
#CSharp8
🌐🌐🌐 ویژگی های جدید C# 8.0 (قسمت دوم)
لینک قسمت اول : https://www.tgoop.com/ABlueDeveloper/278
Ranges and indices
اضافه شدن نوع Index برای زمانی که نیاز به ایندکس گذاری دارید ، شما میتونید از این نوع تایپ استفاده کنید و بصورت Int مقدار دهی کنید و یا قبل مقدار int از ^ استفاده کنید برای گرفتن مقدار ایندکس از اخر (prefix) . در واقع از این به بعد هرجا نیاز دارین که از کالکشنی با index ، value آن ایتم را بگیرید ، ویرایش یا پر کنید از index باید استفاده کنید.

Index i1 = 3;  // number 3 from beginning
Index i2 = ^4; // number 4 from end
int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine($"{a[i1]}, {a[i2]}"); // "3, 6"

همچنین یک نوع محدوده معرفی شده که شامل دو Index است، یکی برای شروع و یک برای پایان، و می تواند با یک عبارت x..y نوشته شود.با توجه به مثال قبل به مثال زیر توجه کنید:
var slice = a[i1..i2]; // { 3, 4, 5 }

Default implementations of interface members

در حال حاضر هنگامی که یک Interface را نوشتید و استفاده میکنید ،دیگر نمی توانید Member به آن را اضافه کنید بدون اینکه کلاسهایی که استفاده کردند تغییری ندهند.
در C # 8.0 به شما اجازه داده میشود در واقع یه Member رو Overload کنید . حالا دیگر تمام کلاس هایی که این interface را impelement کردند نیازی نیست حتما definition اون member رو بنویسند و از همون default impelementation که قبلا بود استفاده میکنند . به مثال زیر توجه کنید :

 interface ILogger
{
void Log(LogLevel level, string message);
void Log(Exception ex) => Log(LogLevel.Error, ex.ToString()); // New overload
}

class ConsoleLogger : ILogger
{
public void Log(LogLevel level, string message) { ... }
// Log(Exception) gets default implementation
}

کلاس ConsoleLogger نیازی به پیاده سازی Log (Exception) از ILogger نیست، زیرا متد با اجرای پیش فرض اعلام شده است.

حالا شما میتوانید Members های جدید رو به interface هاتون با خیال راحت با default implementation اضافه کنید بدون اینکه نیاز باشه تو هر جایی که از این interface استفاده کردید تغییری ایجاد کنید.




@ABlueDeveloper

BY Web Devs


Share with your friend now:
tgoop.com/fullStackDevs/281

View MORE
Open in Telegram


Telegram News

Date: |

Hui said the messages, which included urging the disruption of airport operations, were attempts to incite followers to make use of poisonous, corrosive or flammable substances to vandalize police vehicles, and also called on others to make weapons to harm police. 6How to manage your Telegram channel? 2How to set up a Telegram channel? (A step-by-step tutorial) Those being doxxed include outgoing Chief Executive Carrie Lam Cheng Yuet-ngor, Chung and police assistant commissioner Joe Chan Tung, who heads police's cyber security and technology crime bureau. With Bitcoin down 30% in the past week, some crypto traders have taken to Telegram to “voice” their feelings.
from us


Telegram Web Devs
FROM American