Web Devs
643 subscribers
218 photos
22 videos
17 files
233 links
Articles, News, Jokes, Quotes, Back-End and UI/UX for web developers.
Github : https://github.com/fullStackDevsGroup
Advertising: @adsfullStackDevs
Download Telegram
#csharp
#Enums

❇️در این پست مورد جالبی را در مورد Enum ها برررسی میکنیم.

🔸آیا می دانستید که میتوانیم برای Enum ها Extension method بنویسیم؟
▫️پاسخ سوال واضح است. مشخصا بله .

🔹اما اگر بخواهیم فقط برای یک enum خاص یک Extension method بنویسیم و در سایر Enum ها قابل دسترس نباشد چه ⁉️

❇️ در این پست به بررسی این موضوع میپردازیم و در نهایت پاسخ سوال را ارائه می کنیم.

🔰همانطور که میدانید Extension متد ها راهی برای نوشتن و افزودن متدهای جدید به یک type از پیش ساخته شده، یا یک type سفارشی، بدون تغییر
در آن type است.
درواقع enum ها نوع خاصی از کلاس ها هستند که گروهی از constant ها را نمایش میدهند. پس دور از انتظار نیست که به این صورت برایشان Extention method بنویسیم.

enum Duration { Day, Week, Month };

static class DurationExtensions {

public static DateTime From(this Duration duration, DateTime dateTime) {
switch(duration) {
case Day: return dateTime.AddDays(1);
case Week: return dateTime.AddDays(7);
case Month: return dateTime.AddMonths(1);
default: throw new ArgumentOutOfRangeException("duration");
}
}
}

▪️و بدین صورت متد From فقط برای enum Duration قابل دسترسی خواهد بود.

@fullStackDevs