Serdar YILMAZ / Software Developer
Bizimkisi Bir “Bug” Hikayesi...
Akbank Bankacılık Merkezi
Serdar Yılmaz C# – Generic Sınıflar, Metotlar ve Arayüzler

C# – Generic Sınıflar, Metotlar ve Arayüzler

.net
Bu içerikte Generic’leri anlatırken, konuya aşinalığı sağlamak adına basit örnekler üzerinden, özellikle yazım kurallarını ön planda tutarak içeriği oluşturacağım. Sonradan yayınlayacağım içeriklerde ise Generic’lere daha detaylı bir şekilde değinip, gerçek hayatta kullanımına dair örneklere yer vereceğim.

Generic Sınıflar 

Şu ana kadar oluşturduğumuz sınıflarda, sınıf içerisindeki değişkenlerin, metotların ve parametrelerin veri tiplerini onları tanımlarken belirttik.

Example sınıfında example_1 değişkeninin veri tipini ve example_2 metodunun parametresinin veri tipini de int olarak belirttik. Artık example_1 değişkenine int haricinde bir değer atamamız veya example_2 metoduna int’den farklı bir parametre göndermemiz mümkün değildir.

Generic yapıyı kullandığımız takdirde sınıf içerisindeki değişkenlerin, parametrelerin ve metotların geri dönüş tiplerini o sınıftan bir nesne oluştururken belirleyebilmekteyiz.

Example sınıfından nesne oluştururken T (T yerine farklı bir isim verilebilir, isteğe bağlı) yerine hangi veri tipini yazarsak; sınıf içerisindeki değişken ve parametrenin tipi o şekilde olacaktır.

exp_1 nesnesinde example_1 değişkeni ve example_2 metodunun parametresi int tipinde olacaktır. exp_2 nesnesinde ise example_1 değişkeni ve example_2 metodunun parametresi string tipinde olacaktır. Yani Generic’ler sayesinde bir sınıfın elemanlarının veri tiplerini ihtiyaç doğrultusunda yeni bir sınıf tanımlamaya gerek kalmadan değiştirebilmekteyiz.

generic c#

Generic Metotlar

Bazen bir sınıf içerisindeki metotların sadece birkaçını Generic olarak kullanmak isteyebiliriz. Böylesi bir durumda sınıfı Generic yapmak yerine sadece ilgili metotları Generic yapmak çok daha mantıklı olacaktır.

example_1 ve example_2 metotlarının parametre ve geri dönüş tipleri bellidir, bu yüzden farklı türden bir değer almaları veya geriye döndürmeleri mümkün değildir. Ancak example_3 metodu Generic olarak tanımlandığı için parametre ve geri dönüş tipi çağrılmadan önce belirtilmelidir. example_4 metodunun ise geri dönüş tipi string olup, parametresinin veri tipi çağrılmadan önce belirtilmelidir.

Ekran Çıktısı:

Generic Arayüzler

Tıpkı sınıflarda olduğu gibi arayüzleri de Generic olarak tanımlayabiliriz.

Tek fark; Generic sınıflarda veri tipini o sınıftan bir nesne oluştururken belirtmekteyiz, Generic arayüzlerde ise veri tipini, o arayüzü bir sınıfa implement ederken belirtmekteyiz.

Arayüzlerde Generic Metot Bildirimi 

Arayüz içerisindeki metotların tamamı Generic değilse; Arayüz yerine sadece ilgili metotları Generic yapmak daha mantıklı olacaktır, tıpkı Generic metotlarda anlattığımız gibi.

IExample arayüzü Generic olmadığı için herhangi veri tipi belirtmeden ExampleClass_1 sınıfına implement edebildik. example_2 metodu Generic olduğu için veri tipi metot çağrılırken girilecektir.

Statik Generic Sınıflar

Statik sınıflar ile statik olmayan sınıfların Generic yapılması noktasında arada herhangi bir fark bulunmuyor. Statik sınıfların metot ve değişkenlerine nesne oluşturmadan erişebildiğimiz için, veri tipini sınıf adını yazdıktan hemen sonra belirtiyoruz.

Generic’lerde Birden Fazla Veri Tipinin Kullanılması

Generic ifadelere birden fazla veri tipi gönderebiliriz.

Serdar YILMAZ


Bu İçeriği Arkadaşlarınızla Paylaşmak İster misiniz?

2 Yorum

Bir Yorum Yapın