Junior
Genişləndirmə metodlarının mahiyyəti nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Genişləndirmə metodları (extension methods) mövcud tiplərə yeni metodlar əlavə etməyə imkan verir, onların mənbə kodunu dəyişmədən və ya yeni törəmə tip yaratmadan.
Əsas mahiyyəti aşağıdakıdır:
- Onlar statik sinifdə statik metodlar kimi elan edilir.
- Genişləndirmə metodunun ilk parametri
thisaçar sözü ilə onun tipindən əvvəl yerləşir. Bu parametr genişləndirilən tipi göstərir. - Onlar genişləndirilmiş tipin nümunə metodları kimi çağırılır.
Misal:
// Genişləndirmə metodları üçün statik sinif
public static class StringExtensions
{
// string tipi üçün genişləndirmə metodu
public static string Truncate(this string input, int maxLength)
{
if (string.IsNullOrEmpty(input))
{
return input;
}
return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
}
}
// Genişləndirmə metodundan istifadə
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Nümunə metodu kimi çağırılır
// Birbaşa statik metod çağırışına bərabərdir
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);
Üstünlüklər:
- Kodun oxunaqlığını yaxşılaşdırır, obyektlər üzərində "nöqtə sintaksisi" istifadə etməyə imkan verir.
- Bağlanmış (sealed) sinflərə və ya üçüncü tərəf kitabxanalarından tiplərə funksionallıq əlavə etməyə imkan verir, onların mənbə kodunu dəyişmədən.
- LINQ sorğularını yazmağı asanlaşdırır, çünki çox sayda LINQ metodu genişləndirmə metodları kimi həyata keçirilmişdir.