Hvordan bruke hvor (generisk typebegrensning)

Hvordan Bruke Hvor Generisk Typebegrensning



Generiske typebegrensninger i C# lar utviklere definere settet med typer som en generisk typeparameter kan representere. Denne funksjonen gjør det mulig for kompilatoren å håndheve typesikkerhet og forhindrer feil som kan oppstå under kjøring. En av de mest brukte begrensningene er 'hvor' begrensning, vil denne artikkelen forklare hva 'hvor' constraint er i C# og hvordan du bruker den i koden din.

Hva er 'hvor'-begrensningen

De 'hvor' constraint er en generisk typebegrensning i C# som lar utviklere spesifisere typeparameteren som en generisk type kan representere. Begrensningen er spesifisert ved å bruke 'hvor' nøkkelord etterfulgt av typeparameteren og begrensningen, syntaksen for bruk av 'hvor' begrensning er som følger:

offentlig klasse Klassenavn < T > hvor T : begrensning

{

// Klasseimplementering

}

Her er 'Klassenavn' representerer navnet på klassen med en generisk typeparameter 'T' . De 'hvor' nøkkelordet spesifiserer begrensningen for typeparameteren, og 'begrensning' er typen som typeparameteren må representere.







La oss ta et eksempel på en generisk klasse som aksepterer en typeparameter og returnerer minimumsverdien fra en rekke verdier. Her bruker koden 'hvor' begrensning for å spesifisere at typeparameteren må være en numerisk type:



bruker System ;

offentlig klasse Minverdi < T > hvor T : struktur , ISammenlignbar , IConvertible

{

offentlig T GetMinValue ( T [ ] array )

{

hvis ( array == null || array. Lengde == 0 ) {

kaste nytt ArgumentException ( 'Array kan ikke være null eller tom' ) ;

}

T min = array [ 0 ] ;

til ( int Jeg = 1 ; Jeg < array. Lengde ; Jeg ++ ) {

hvis ( array [ Jeg ] . Sammenligne med ( min ) < 0 ) {

min = array [ Jeg ] ;

}

}

komme tilbake min ;

}

}

offentlig klasseprogram

{

offentlig statisk tomrom Hoved ( )

{

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

Minverdi < int > intMinValue = ny Minverdi < int > ( ) ;

int intMin = intMinValue. GetMinValue ( intArray ) ;

Konsoll. WriteLine ( 'Minimumsverdi for intArray: {0}' , intMin ) ;

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

Minverdi < dobbelt > dobbelMinverdi = ny Minverdi < dobbelt > ( ) ;

dobbelt dobbelMin = dobbelMinverdi. GetMinValue ( doubleArray ) ;

Konsoll. WriteLine ( 'Minimumsverdi for doubleArray: {0}' , dobbelMin ) ;

}

}

Her har vi definert en generisk klasse «Minverdi» som godtar en typeparameter 'T' og returnerer minimumsverdien fra en rekke verdier. Deretter har vi brukt 'hvor' begrensning for å spesifisere at typeparameteren må være en struktur, implementere IComparable-grensesnittet og implementere IConvertible-grensesnittet. Denne begrensningen sikrer at bare numeriske typer er tillatt som typeparametere.



  Form, rektangel Beskrivelse automatisk generert





Konklusjon

De 'hvor' constraint i C# er en kraftig funksjon som lar utviklere håndheve typesikkerhet og forhindre feil under kjøring. Ved å bruke denne begrensningen kan du spesifisere settet med typer som en generisk typeparameter kan representere. Denne artikkelen har gitt en oversikt over 'hvor' constraint i C# og demonstrerte hvordan man bruker den med en kode.