Generic’ler tasarlandığımız interface, class, metod yada parametrelerin (argümanların) belirli bir tip için değil bir şablon yapısına uyan her tip için çalışmasını sağlayan bir yapıdır. Generic’ler C++’taki şablon (template)’lerle benzerlik göstermesine karşın, uygulanış (implementation) bakımından farklılıklar göstermektedir. Generic ve C++ şablon (template)’lar arasındaki farklılıkları bu linkten inceleyebilirsiniz. Generic’ler.Net 2.0 ile birlikte kullanıma sunulmuştur.
Generic’lerin bize sağladığı avantajlar :
- Yazılım parçacıkları içerisinde tekrar kullanılabilir kod yazmamıza yardımcı olarak kod tekrarını önler.
- Kaliteli ve daha yönetilebilir kod yazmamıza olanak sağlar.
- Çalışma zamanında (run time) gereksiz Cast ve Boxing-Unboxing kullanmasını önlediğinden efektif performans sağlar.
- Derleme zamanında (compile time) (type safe) tip güvenli değişken kullanılmasını zorlayarak çalışma zamanında oluşabilecek tip dönüşüm hatalarını önler.
- Programcıya kod üzerinde daha güçlü esnek bir kontrol sağlar.