Sobes.tech
Junior

Kengaytirish usullari mohiyati nima?

sobes.tech AI

AIdan javob

Kengaytirilgan metodlar (extension methods) mavjud tiplarga yangi metodlar qo'shishga imkon beradi, ularning manba kodini o'zgartirmasdan yoki yangi vorislik turini yaratmasdan.

Asosiy tamoyil quyidagicha:

  • Ular statik sinfda statik metodlar sifatida e'lon qilinadi.
  • Kengaytirilayotgan metodning birinchi parametri this so'zi bilan uning turidan oldin yoziladi. Bu parametr kengaytirilayotgan turni ko'rsatadi.
  • Ular kengaytirilgan turning instansiya metodlari kabi chaqiriladi.

Misol:

// Kengaytiriladigan metodlar uchun statik sinf
public static class StringExtensions
{
    // string turiga kengaytiriladigan metod
    public static string Truncate(this string input, int maxLength)
    {
        if (string.IsNullOrEmpty(input))
        {
            return input;
        }
        return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
    }
}

// Kengaytirilgan metoddan foydalanish
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Ob'ektning o'z metodidek chaqiriladi

// To'g'ridan-to'g'ri statik metodni chaqirish bilan teng
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);

Afzalliklari:

  • Kodning o'qilishi yaxshilanadi, ob'ektlarda "nuqta sintaksisi" ishlatilishi mumkin.
  • Yopilgan (sealed) sinflar yoki uchinchi tomon kutubxonalarining turlariga funksionallik qo'shish imkonini beradi, manba kodini o'zgartirmasdan.
  • LINQ so'rovlarini yozishni osonlashtiradi, chunki ko'plab LINQ metodlari kengaytiriladigan metodlar sifatida amalga oshirilgan.