Nerede Nasıl Kullanılır (Genel Tür Kısıtlaması)

Nerede Nasil Kullanilir Genel Tur Kisitlamasi



C#'daki genel tür kısıtlamaları, geliştiricilerin genel tür parametresinin temsil edebileceği türler kümesini tanımlamasına olanak tanır. Bu özellik, derleyicinin tür güvenliğini zorlamasını sağlar ve çalışma zamanı sırasında oluşabilecek hataları önler. En çok kullanılan kısıtlamalardan biri, 'Neresi' kısıtlama, bu makale neyin ne olduğunu açıklayacaktır. 'Neresi' kısıtlama C# dilinde ve kodunuzda nasıl kullanılacağı.

'Nerede' Kısıtlaması Nedir?

bu 'Neresi' kısıtlama, geliştiricilerin genel bir türün temsil edebileceği tür parametresini belirtmesine izin veren, C# dilindeki genel bir tür kısıtlamasıdır. Kısıtlama, 'Neresi' anahtar kelime ve ardından type parametresi ve kısıtlama, kullanmak için sözdizimi 'Neresi' kısıtlama aşağıdaki gibidir:

genel sınıf SınıfAdı < T > nerede T : kısıtlama

{

// Sınıf uygulaması

}

burada 'Sınıf adı' genel bir tür parametresi ile sınıfın adını temsil eder 'T' . bu 'Neresi' anahtar sözcük, tür parametresi için kısıtlamayı belirtir ve 'kısıtlama' type parametresinin temsil etmesi gereken türdür.







Bir tür parametresini kabul eden ve bir dizi değerden minimum değeri döndüren genel bir sınıf örneğini ele alalım. Burada kod kullanır 'Neresi' type parametresinin sayısal bir tür olması gerektiğini belirtmek için kısıtlama:



Sistemi kullanarak ;

genel sınıf MinValue < T > nerede T : yapı , Kıyaslanabilir , Cabrio

{

genel T GetMinValue ( T [ ] sıralamak )

{

eğer ( sıralamak == hükümsüz || sıralamak. Uzunluk == 0 ) {

yeni ArgumentException at ( 'Dizi null veya boş olamaz' ) ;

}

T dk = sıralamak [ 0 ] ;

için ( int Ben = 1 ; Ben < sıralamak. Uzunluk ; Ben ++ ) {

eğer ( sıralamak [ Ben ] . Karşılaştırmak ( dakika ) < 0 ) {

dakika = sıralamak [ Ben ] ;

}

}

geri dönmek dakika ;

}

}

genel sınıf Programı

{

halk statik geçersiz Ana ( )

{

int [ ] dizi içi = { 1 , 2 , 3 , 4 , 5 } ;

Minimum Değer < int > intMinDeğer = yeni MinDeğer < int > ( ) ;

int intMin = intMinValue. GetMinValue ( dizi içi ) ;

Konsol. Yazı çizgisi ( 'intArray'in minimum değeri: {0}' , intMin ) ;

çift [ ] çift ​​dizi = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;

Minimum Değer < çift > çiftMinDeğer = yeni MinDeğer < çift > ( ) ;

çift çiftDakika = çiftMinDeğer. GetMinValue ( çift ​​dizi ) ;

Konsol. Yazı çizgisi ( 'DoubleArray'in minimum değeri: {0}' , çiftDakika ) ;

}

}

Burada genel bir sınıf tanımladık. 'Asgari Değer' bir tür parametresini kabul eden 'T' ve bir dizi değerden minimum değeri döndürür. Daha sonra, kullandık 'Neresi' type parametresinin bir yapı olması gerektiğini belirtmek, IComparable arabirimini uygulamak ve IConvertible arabirimini uygulamak için kısıtlama. Bu kısıtlama, tür parametresi olarak yalnızca sayısal türlere izin verilmesini sağlar.



  Şekil, dikdörtgen Açıklama otomatik olarak oluşturuldu





Çözüm

bu 'Neresi' C#'daki kısıtlama, geliştiricilerin tür güvenliğini zorunlu kılmasına ve çalışma zamanı sırasında hataları önlemesine olanak tanıyan güçlü bir özelliktir. Bu kısıtlamayı kullanarak, genel bir tür parametresinin temsil edebileceği türler kümesini belirleyebilirsiniz. Bu makale, 'Neresi' C# kısıtlaması ve bunun bir kodla nasıl kullanılacağı gösterildi.