Sobes.tech
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 this aç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.