Čo je to obmedzenie „kde“.
The 'kde' obmedzenie je obmedzenie všeobecného typu v jazyku C#, ktoré umožňuje vývojárom špecifikovať parameter typu, ktorý môže všeobecný typ reprezentovať. Obmedzenie je špecifikované pomocou 'kde' kľúčové slovo, za ktorým nasleduje parameter typu a obmedzenie, syntax na použitie 'kde' obmedzenie je nasledovné:
verejná trieda Názov triedy < T > kde T : obmedzenie{
// Implementácia triedy
}
Tu je 'Názov triedy' predstavuje názov triedy s parametrom generického typu 'T' . The 'kde' kľúčové slovo určuje obmedzenie pre parameter type a 'obmedzenie' je typ, ktorý musí reprezentovať parameter typu.
Zoberme si príklad generickej triedy, ktorá prijíma parameter typu a vracia minimálnu hodnotu z poľa hodnôt. Tu kód používa 'kde' obmedzenie na určenie, že parameter typu musí byť číselný typ:
pomocou systému ;
verejná trieda MinValue < T > kde T : štrukturovať , IPorovnateľné , Ikonvertibilné
{
verejné T GetMinValue ( T [ ] pole )
{
ak ( pole == nulový || pole. Dĺžka == 0 ) {
hodiť novú výnimku Argument ( 'Pole nemôže byť nulové alebo prázdne' ) ;
}
T min = pole [ 0 ] ;
pre ( int i = 1 ; i < pole. Dĺžka ; i ++ ) {
ak ( pole [ i ] . Porovnať s ( min ) < 0 ) {
min = pole [ i ] ;
}
}
vrátiť min ;
}
}
Program verejnej triedy
{
verejnosti statické neplatné Hlavná ( )
{
int [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;
MinValue < int > intMinValue = nová MinValue < int > ( ) ;
int intMin = intMinValue. GetMinValue ( intArray ) ;
Konzola. WriteLine ( 'Minimálna hodnota intArray: {0}' , intMin ) ;
dvojitý [ ] doubleArray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;
MinValue < dvojitý > doubleMinValue = nová MinValue < dvojitý > ( ) ;
dvojitý doubleMin = doubleMinValue. GetMinValue ( doubleArray ) ;
Konzola. WriteLine ( 'Minimálna hodnota doubleArray: {0}' , doubleMin ) ;
}
}
Tu sme definovali generickú triedu 'MinValue' ktorý akceptuje parameter typu 'T' a vráti minimálnu hodnotu z poľa hodnôt. Ďalej sme použili 'kde' obmedzenie špecifikovať, že parameter typu musí byť štruktúra, implementovať rozhranie IComparable a implementovať rozhranie IConvertible. Toto obmedzenie zaisťuje, že ako parametre typu sú povolené iba číselné typy.
Záver
The 'kde' obmedzenie v C# je výkonná funkcia, ktorá umožňuje vývojárom presadzovať bezpečnosť typu a predchádzať chybám počas behu. Pomocou tohto obmedzenia môžete určiť množinu typov, ktoré môže reprezentovať parameter všeobecného typu. Tento článok poskytol prehľad o 'kde' obmedzenie v C# a demonštroval, ako ho použiť s kódom.