Što je ograničenje 'gdje'.
The 'gdje' ograničenje je generičko ograničenje tipa u C# koje omogućuje programerima da navedu parametar tipa koji generički tip može predstavljati. Ograničenje je navedeno pomoću 'gdje' ključna riječ iza koje slijedi parametar tipa i ograničenje, sintaksa za korištenje 'gdje' ograničenje je sljedeće:
javna klasa ClassName < T > gdje je T : ograničenje{
// Implementacija klase
}
Ovdje je 'Ime klase' predstavlja naziv klase s parametrom generičkog tipa 'T' . The 'gdje' ključna riječ specificira ograničenje za parametar tipa, a 'ograničenje' je tip koji parametar tipa mora predstavljati.
Uzmimo primjer generičke klase koja prihvaća parametar tipa i vraća minimalnu vrijednost iz niza vrijednosti. Ovdje kod koristi 'gdje' ograničenje za navođenje da parametar tipa mora biti numerički tip:
pomoću sustava ;
javna klasa MinValue < T > gdje je T : strukturirati , Usporedivo , IConvertible
{
javni T GetMinValue ( T [ ] niz )
{
ako ( niz == ništavan || niz. Duljina == 0 ) {
izbaci novi ArgumentException ( 'Niz ne može biti prazan ili nula' ) ;
}
T min = niz [ 0 ] ;
za ( int ja = 1 ; ja < niz. Duljina ; ja ++ ) {
ako ( niz [ ja ] . Usporedi s ( min ) < 0 ) {
min = niz [ ja ] ;
}
}
povratak min ;
}
}
javna klasa Program
{
javnost statički poništiti Glavni ( )
{
int [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;
MinVrijednost < int > intMinValue = nova MinVrijednost < int > ( ) ;
int intMin = intMinValue. GetMinValue ( intArray ) ;
Konzola. WriteLine ( 'Minimalna vrijednost intArray: {0}' , intMin ) ;
dvostruko [ ] dvostruki niz = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;
MinVrijednost < dvostruko > doubleMinValue = nova MinVrijednost < dvostruko > ( ) ;
dvostruko dvostrukoMin = doubleMinValue. GetMinValue ( dvostruki niz ) ;
Konzola. WriteLine ( 'Minimalna vrijednost doubleArray: {0}' , dvostrukoMin ) ;
}
}
Ovdje smo definirali generičku klasu “MinValue” koji prihvaća parametar tipa 'T' i vraća minimalnu vrijednost iz niza vrijednosti. Zatim smo upotrijebili 'gdje' ograničenje za navođenje da parametar tipa mora biti struktura, implementirati sučelje IComparable i implementirati sučelje IConvertible. Ovo ograničenje osigurava da su samo numerički tipovi dopušteni kao parametri tipa.
Zaključak
The 'gdje' ograničenje u C# je moćna značajka koja omogućuje programerima da provedu sigurnost tipa i spriječe pogreške tijekom izvođenja. Korištenjem ovog ograničenja možete navesti skup tipova koje može predstavljati generički parametar tipa. Ovaj članak je dao pregled 'gdje' ograničenje u C# i pokazao kako ga koristiti s kodom.