Cara Menggunakan di mana (Kekangan Jenis Generik)

Cara Menggunakan Di Mana Kekangan Jenis Generik



Kekangan jenis generik dalam C# membenarkan pembangun mentakrifkan set jenis yang boleh diwakili oleh parameter jenis generik. Ciri ini membolehkan pengkompil menguatkuasakan keselamatan jenis dan menghalang ralat yang mungkin berlaku semasa masa jalan. Salah satu kekangan yang paling banyak digunakan ialah “di mana” kekangan, artikel ini akan menerangkan apa yang “di mana” kekangan ada dalam C# dan cara menggunakannya dalam kod anda.

Apakah Kekangan 'di mana'.

The “di mana” kekangan ialah kekangan jenis generik dalam C# yang membolehkan pembangun menentukan parameter jenis yang boleh diwakili oleh jenis generik. Kekangan ditentukan menggunakan “di mana” kata kunci diikuti dengan parameter jenis dan kekangan, sintaks untuk menggunakan “di mana” kekangan adalah seperti berikut:

Nama Kelas kelas awam < T > di mana T : kekangan

{

// Pelaksanaan kelas

}

Di sini “Nama Kelas” mewakili nama kelas dengan parameter jenis generik “T” . The “di mana” kata kunci menentukan kekangan untuk parameter jenis, dan “kekangan” ialah jenis yang mesti diwakili oleh parameter jenis.







Mari kita ambil contoh kelas generik yang menerima parameter jenis dan mengembalikan nilai minimum daripada tatasusunan nilai. Di sini kod menggunakan “di mana” kekangan untuk menentukan bahawa parameter jenis mestilah jenis angka:



menggunakan Sistem ;

MinValue kelas awam < T > di mana T : struct , IComparable , IConvertible

{

awam T GetMinValue ( T [ ] tatasusunan )

{

jika ( tatasusunan == null || tatasusunan. Panjang == 0 ) {

buang ArgumentException baharu ( 'Array tidak boleh kosong atau kosong' ) ;

}

T min = tatasusunan [ 0 ] ;

untuk ( int i = 1 ; i < tatasusunan. Panjang ; i ++ ) {

jika ( tatasusunan [ i ] . BandingkanKepada ( min ) < 0 ) {

min = tatasusunan [ i ] ;

}

}

kembali min ;

}

}

Program kelas awam

{

awam statik batal Utama ( )

{

int [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;

MinValue < int > intMinValue = MinValue baharu < int > ( ) ;

int intMin = intMinValue. GetMinValue ( intArray ) ;

Konsol. WriteLine ( 'Nilai minimum intArray: {0}' , intMin ) ;

berganda [ ] doubleArray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;

MinValue < berganda > doubleMinValue = MinValue baharu < berganda > ( ) ;

berganda doubleMin = doubleMinValue. GetMinValue ( doubleArray ) ;

Konsol. WriteLine ( 'Nilai minimum doubleArray: {0}' , doubleMin ) ;

}

}

Di sini, kami telah menentukan kelas generik “MinValue” yang menerima parameter jenis “T” dan mengembalikan nilai minimum daripada tatasusunan nilai. Seterusnya, kami telah menggunakan “di mana” kekangan untuk menentukan bahawa parameter jenis mestilah struct, melaksanakan antara muka IComparable, dan melaksanakan antara muka IConvertible. Kekangan ini memastikan bahawa hanya jenis angka dibenarkan sebagai parameter jenis.



  Bentuk, segi empat tepat Perihalan dijana secara automatik





Kesimpulan

The “di mana” kekangan dalam C# ialah ciri berkuasa yang membolehkan pembangun menguatkuasakan keselamatan jenis dan mencegah ralat semasa masa jalan. Dengan menggunakan kekangan ini, anda boleh menentukan set jenis yang boleh diwakili oleh parameter jenis generik. Artikel ini telah memberikan gambaran keseluruhan tentang “di mana” kekangan dalam C# dan menunjukkan cara menggunakannya dengan kod.