Junior
Genişletme yöntemlerinin özü nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Genişletme metodları (extension methods), mevcut türlere yeni metodlar eklemeye olanak tanır, kaynak kodlarını değiştirmeden veya yeni türetilmiş bir tür oluşturmadan.
Özellikleri şunlardır:
- Statik bir sınıfta statik metodlar olarak tanımlanırlar.
- Genişletme metodunun ilk parametresi, türünden önce
thisanahtar kelimesini alır. Bu parametre, genişletilen türü gösterir. - Genişletme metodları, genişletilen türün örneğiymiş gibi çağrılır.
Örnek:
// Genişletme metodları için statik sınıf
public static class StringExtensions
{
// string türü için genişletme 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şletme metodunun kullanımı
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Nesne örneği gibi çağrılır
// Doğrudan statik metodun çağrısına eşdeğerdir
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);
Avantajlar:
- Kod okunabilirliğini artırır, nesnelerde "nokta sözdizimi" kullanılmasına olanak tanır.
- Kapanmış (sealed) sınıflara veya üçüncü taraf kütüphanelerden türlere fonksiyonellik eklemeyi sağlar, kaynak kodlarını değiştirmeden.
- LINQ sorgularının yazımını kolaylaştırır, çünkü birçok LINQ metodu genişletme metodları olarak uygulanmıştır.