Generic Classes (Jenerik Sınıflar)

Generic Classes (Jenerik Sınıflar)

C# yazılım dilinde generic sınıflar oldukça güçlü ve esnek bir özelliktir. Generic sınıflar, farklı veri tipleriyle çalışabilen sınıflar oluşturulmasına olanak tanır. Bu sayede, kod tekrarı azaltabilir ve daha tür güvenli bir kod yazılabilir.

Generic Sınıflar Nedir?

Generic sınıflar, belirli bir veri türüyle sınırlı olmayan ve herhangi bir veri türüyle çalışabilen sınıflardır. Bu sınıflar, tip güvenliğini sağlarken aynı zamanda yeniden kullanılabilirliği artırır. Generic sınıflar, bir sınıfın veya metodun tanımlanırken tip belirtmeden, o sınıf veya metodun kullanılacağı zaman tipi belirleyebilmenizi sağlar.

Generic Sınıf Tanımlama

Generic bir sınıf tanımlarken, sınıf adının yanına bir tür parametresi eklenir. Bu tür parametresi, T gibi bir harf veya anlamlı bir isim olabilir.

public class GenericClass<T>
{
     private T field;
     public GenericClass(T value)
     {
          field = value;
     }

    public T GetValue()
    {
        return field;
    }

    public void SetValue(T value)
    {
        field = value;
    }
}

Generic Sınıf Kullanımı

Generic sınıfları kullanırken, sınıfın oluşturulma zamanında tipin belirtilmesi gerekir.

GenericClass<int> intInstance = new GenericClass<int>(42);

int intValue = intInstance.GetValue();      // 42 döner

GenericClass<string> stringInstance = new GenericClass<string>("Hello");

string stringValue = stringInstance.GetValue();      // "Hello" döner

Generic Metotlar

Generic sınıfların yanı sıra, generic metotlar da tanımlanabilir. Bir metodu generic hale getirmek için metot adının yanına tür parametresi eklenebilir:

public class Utility
{
    public static void Swap<T>(ref T lhs, ref T rhs)
    {
        T temp = lhs;
        lhs = rhs;
        rhs = temp;
    }
}

Generic Kısıtlamalar

Generic sınıflar ve metotlar, belirli türlerle sınırlandırılabilir. Bu kısıtlamalar, generic tür parametresinin belirli bir sınıfı, arabirimi veya yeni bir oluşturulabilir türü uygulamasını gerektirebilir:

public class GenericClass<T> where T : class
{
    // T sadece bir referans tipi olabilir
}

public class GenericClass<T> where T : IComparable<T>
{
    // T, IComparable arayüzünü uygulayan bir tür olmalıdır
}

public class GenericClass<T> where T : new()
{
    // T'nin parametresiz bir kurucusu (constructor) olmalıdır
}

Generic Koleksiyonlar

.NET'te yaygın olarak kullanılan birçok koleksiyon sınıfı generic olarak tanımlanmıştır. Örneğin, List<T>, Dictionary<TKey, TValue>, Queue<T>, ve Stack<T> gibi. Bu koleksiyonlar, tür güvenliğini ve performansı artırır.

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
Dictionary<string, int> dictionary = new Dictionary<string, int>
{
    { "one", 1 },
    { "two", 2 }
};

Avantajları

Tip Güvenliği: Derleme zamanında hataları yakalayarak runtime hatalarını azaltır.
Performans: Boxing ve unboxing ihtiyacını ortadan kaldırarak performansı artırır.
Kod Tekrarını Azaltma: Farklı veri türleriyle çalışabilen kod yazmanızı sağlar.

Sonuç

C# generic sınıflar, daha esnek, yeniden kullanılabilir ve tip güvenli kod yazmanıza yardımcı olur. Bu özellikler sayesinde yazılım geliştiriciler, daha az kod yazarak daha fazla işlevsellik elde edebilirler. Generic sınıfları ve metotları anlamak ve etkin bir şekilde kullanmak, C# dilinde daha güçlü ve etkili programlar yazılmasını sağlar.

Randevu

Hakkımda


Şaban Çetin

...

İletişim Formu


Sosyal Medya


...

...

...

© Copyright: www.griadam.com.tr