C# Generic Tiplere Kısıtlama Getirme

İbrahim     6 Ağustos 2017     557     0    
Genel bir class tanımladığınızda, class'ımızı oluştururken istemci kodunun tür bağımsız değişkenleri için kullanabileceği tür kısıtlamalarını uygulayabilirsiniz.Bu kısıtlama açılım yapılabilecek türlerin belirli bir taban sınıftan türetilmesi ya da belirli bir arayüzü implemente etmesi amacıyla kullanılır.  

Aşağıdaki tabloda altı tür kısıtlama listesi verilmektedir.

Kısıtlama Açıklama

where T: struct    

T argümanı bir değer türü olmalıdır.
where T : class    T argümanı bir referans türü olmalıdır; Bu, herhangi bir sınıf, arayüz, temsilci veya dizi türü için de geçerlidir.
where T : new() T argümanı parametre içermeyen bir yapıcıya sahip olmalıdır. Diğer sınırlamalarla birlikte kullanıldığında, new() sınırlama en son belirtilmelidir.

where T : <base class name>

T argümanı belirtilen taban sınıfından olmalı ya da türetilmelidir.

where T : <interface name>

T argümanı belirtilen arabirim olmalıdır ya da belirtilen arabirimi uygulamanız gerekir. Çoklu arayüz kısıtlamaları belirtilebilir. Sınırlayıcı arayüz de genel olabilir.

where T : U

T için verilen tür bağımsız değişkeni, U için verilen bağımsız değişkenden türemiş olmalıdır.

 

ÖRNEK :

class Base
{
}

class Musteri : Base
{
}

class Personel : Base
{
}

class Islemler <T> where T : Base
{
    //Generic sınıf
}

Bu örnekte yaptığımız kısıtlama sayesinde, sadece Base class ve Base class'tan türemiş sınıflar geçerli sayılacak, diğerleri ise geçersiz sayılacaktır.

 

Daha fazla bilgi için : https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/constraints-on-type-parameters


Etiketler:  
csharp
generic-siniflar
generic-siniflara-kisitlama-getirme


Paylaş:  

Bir Cevap Yazın