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