Kuidas seda kasutada (üldise tüübi piirang)

Kuidas Seda Kasutada Uldise Tuubi Piirang



C# üldised tüübipiirangud võimaldavad arendajatel määratleda tüüpide komplekti, mida üldine tüübiparameeter võib esindada. See funktsioon võimaldab kompilaatoril jõustada tüübiohutust ja takistab käitusajal tekkida võivaid vigu. Üks enim kasutatud piiranguid on 'kus' piirang, see artikkel selgitab, mida 'kus' piirang on C#-s ja kuidas seda oma koodis kasutada.

Mis on 'kus' piirang

The 'kus' piirang on C# üldise tüübi piirang, mis võimaldab arendajatel määrata tüübiparameetri, mida üldine tüüp võib esindada. Piirang määratakse kasutades 'kus' märksõna, millele järgneb tüübi parameeter ja piirang, kasutamise süntaks 'kus' piirang on järgmine:

avalik klass ClassName < T > kus T : piirang

{

// Klassi rakendamine

}

Siin on 'Klassinimi' tähistab klassi nime üldise tüübiparameetriga 'T' . The 'kus' märksõna määrab tüübi parameetri piirangu ja 'piirang' on tüüp, mida tüübiparameeter peab esindama.







Võtame näite üldisest klassist, mis aktsepteerib tüübiparameetrit ja tagastab väärtuste massiivi minimaalse väärtuse. Siin kasutab kood 'kus' piirang, mis määrab, et tüübiparameeter peab olema numbritüüp:



süsteemi kasutades ;

avalik klass MinValue < T > kus T : struktuur , Võrreldav , IConvertible

{

avalik T GetMinValue ( T [ ] massiivi )

{

kui ( massiivi == null || massiivi. Pikkus == 0 ) {

viska uus ArgumentException ( 'Massiiv ei saa olla tühi ega tühi' ) ;

}

T min = massiivi [ 0 ] ;

jaoks ( int i = 1 ; i < massiivi. Pikkus ; i ++ ) {

kui ( massiivi [ i ] . Võrdlema ( min ) < 0 ) {

min = massiivi [ i ] ;

}

}

tagasi min ;

}

}

avaliku klassi programm

{

avalik staatiline tühine Peamine ( )

{

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

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

int intMin = intMinValue. GetMinValue ( intArray ) ;

konsool. WriteLine ( 'IntArray minimaalne väärtus: {0}' , intMin ) ;

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

MinValue < kahekordne > doubleMinValue = uus MinValue < kahekordne > ( ) ;

kahekordne doubleMin = doubleMinValue. GetMinValue ( doubleArray ) ;

konsool. WriteLine ( 'doubleArray minimaalne väärtus: {0}' , doubleMin ) ;

}

}

Siin oleme määratlenud üldise klassi 'MinValue' mis aktsepteerib tüübiparameetrit 'T' ja tagastab väärtuste massiivi minimaalse väärtuse. Järgmisena oleme kasutanud 'kus' piirang, et määrata, et tüübiparameeter peab olema struktuur, rakendama liidest IComparable ja rakendama IConvertible liidest. See piirang tagab, et tüübiparameetritena on lubatud ainult numbrilised tüübid.



  Kuju, ristkülik Kirjeldus genereeritakse automaatselt





Järeldus

The 'kus' C#-i piirang on võimas funktsioon, mis võimaldab arendajatel jõustada tüübiohutust ja vältida vigu käitusajal. Seda piirangut kasutades saate määrata tüüpide komplekti, mida üldine tüübiparameeter võib esindada. See artikkel on andnud ülevaate 'kus' piirangut C#-s ja näitas, kuidas seda koodiga kasutada.