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
thisso'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.