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ı:
List<string>
string türünde veriler saklayan bir listeyi ifade eder.Ö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.
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page