Kako koristiti gdje (Generičko ograničenje tipa)

Kako Koristiti Gdje Genericko Ogranicenje Tipa



Ograničenja generičkog tipa u C# omogućuju programerima da definiraju skup tipova koje može predstavljati parametar generičkog tipa. Ova značajka omogućuje kompajleru da provede sigurnost tipa i sprječava pogreške koje se mogu pojaviti tijekom izvođenja. Jedno od najčešće korištenih ograničenja je 'gdje' ograničenje, ovaj će članak objasniti što je 'gdje' ograničenje je u C# i kako ga koristiti u svom kodu.

Š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.



  Oblik, pravokutnik Opis automatski generiran





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.