jenerik ne demek?

Jenerik (Generic) Hakkında

Jenerik, programlama dillerinde tip güvenliğini artırmak ve kod tekrarını önlemek amacıyla kullanılan bir özelliktir. Temel olarak, bir sınıfın, arayüzün veya metodun, işlem yapacağı veri tipinden bağımsız olarak tanımlanabilmesini sağlar. Daha sonra, bu sınıf, arayüz veya metot kullanıldığında, hangi veri tipiyle çalışması gerektiği belirtilir.

Avantajları:

  • Tip Güvenliği: Derleme zamanında tip hatalarının yakalanmasını sağlar. Yanlış tipte bir veri kullanıldığında program çalışmadan önce hata verir.

  • Kod Tekrarını Önleme: Aynı mantığı farklı veri tipleri için tekrar tekrar yazmak yerine, tek bir jenerik tanımla farklı tiplerle çalışılabilir.

  • Performans: Bazı durumlarda, boxing/unboxing gibi işlemlerin önüne geçerek performansı artırabilir.

Kullanım Alanları:

  • Koleksiyonlar: Diziler, listeler, sözlükler gibi veri yapıları genellikle jenerik olarak tanımlanır. Örneğin, List<string> string türünde veriler saklayan bir listeyi ifade eder.
  • Algoritmalar: Sıralama, arama gibi algoritmalar farklı veri tipleri üzerinde çalışabilir. Jenerik kullanılarak, bu algoritmaların farklı tiplerle çalışması sağlanır.
  • Arayüzler ve Sınıflar: Bir arayüz veya sınıf, belirli bir veri tipine bağımlı olmadan genel bir davranış tanımlayabilir.

Örnek (C#):

public class Kutu<T>
{
    public T Icerik { get; set; }
}

//Kullanımı:
Kutu<int> sayiKutusu = new Kutu<int>();
sayiKutusu.Icerik = 10;

Kutu<string> metinKutusu = new Kutu<string>();
metinKutusu.Icerik = "Merhaba";

Yukarıdaki örnekte, Kutu sınıfı jenerik olarak tanımlanmıştır. <T> ifadesi, sınıfın hangi tipte veri saklayacağını belirtir. Kullanım sırasında, int veya string gibi farklı tipler belirtilerek, sınıfın o tiplerle çalışması sağlanır.

İlgili Kavramlar:

  • Tip Parametreleri: Jenerik tanımlarda kullanılan <T> gibi ifadeler tip parametreleri olarak adlandırılır.

  • Tip Argümanları: Jenerik bir sınıf veya metot kullanılırken belirtilen int veya string gibi tipler tip argümanları olarak adlandırılır.

  • Kısıtlamalar (Constraints): Jenerik tip parametrelerine, hangi tiplerle çalışabileceği konusunda kısıtlamalar getirilebilir. Örneğin, sadece IComparable arayüzünü uygulayan tiplerle çalışması sağlanabilir.

Umarım bu açıklama jenerik kavramını anlamanıza yardımcı olmuştur.