Sådan bruges hvor (generisk typebegrænsning)

Sadan Bruges Hvor Generisk Typebegraensning



Generiske typebegrænsninger i C# giver udviklere mulighed for at definere det sæt af typer, som en generisk typeparameter kan repræsentere. Denne funktion gør det muligt for compileren at håndhæve typesikkerhed og forhindrer fejl, der kan opstå under kørsel. En af de mest brugte begrænsninger er 'hvor' begrænsning, vil denne artikel forklare, hvad 'hvor' constraint er i C#, og hvordan man bruger det i din kode.

Hvad er 'hvor'-begrænsningen

Det 'hvor' constraint er en generisk type constraint i C#, der giver udviklere mulighed for at specificere den type parameter, som en generisk type kan repræsentere. Begrænsningen er specificeret ved hjælp af 'hvor' nøgleordet efterfulgt af typeparameteren og begrænsningen, syntaksen for at bruge 'hvor' begrænsning er som følger:

offentlig klasse Klassenavn < T > hvor T : begrænsning

{

// Klasseimplementering

}

Her er 'Klassenavn' repræsenterer navnet på klassen med en generisk typeparameter 'T' . Det 'hvor' nøgleordet angiver begrænsningen for typeparameteren og 'begrænsning' er den type, som typeparameteren skal repræsentere.







Lad os tage et eksempel på en generisk klasse, der accepterer en typeparameter og returnerer minimumsværdien fra en række værdier. Her bruger koden 'hvor' begrænsning for at specificere, at typeparameteren skal være en numerisk type:



ved hjælp af System ;

offentlig klasse MinVærdi < T > hvor T : struktur , ISammenlignelig , IConvertible

{

offentlig T GetMinValue ( T [ ] array )

{

hvis ( array == nul || array. Længde == 0 ) {

smid nyt ArgumentException ( 'Array kan ikke være null eller tom' ) ;

}

T min = array [ 0 ] ;

til ( int jeg = 1 ; jeg < array. Længde ; jeg ++ ) {

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

min = array [ jeg ] ;

}

}

Vend tilbage min ;

}

}

offentlig klasse program

{

offentlig statisk ugyldig Hoved ( )

{

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

MinVærdi < int > intMinVærdi = ny MinVærdi < int > ( ) ;

int intMin = intMinVærdi. GetMinValue ( intArray ) ;

Konsol. WriteLine ( 'Minimumsværdi for inArray: {0}' , intMin ) ;

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

MinVærdi < dobbelt > dobbeltMinVærdi = ny MinVærdi < dobbelt > ( ) ;

dobbelt dobbeltMin = dobbeltMinVærdi. GetMinValue ( doubleArray ) ;

Konsol. WriteLine ( 'Minimumsværdi for doubleArray: {0}' , dobbeltMin ) ;

}

}

Her har vi defineret en generisk klasse 'MinValue' der accepterer en typeparameter 'T' og returnerer minimumsværdien fra en matrix af værdier. Dernæst har vi brugt 'hvor' begrænsning for at specificere, at typeparameteren skal være en struct, implementere IComparable-grænsefladen og implementere IConvertible-grænsefladen. Denne begrænsning sikrer, at kun numeriske typer er tilladt som typeparametre.



  Form, rektangel Beskrivelse genereret automatisk





Konklusion

Det 'hvor' constraint i C# er en kraftfuld funktion, der giver udviklere mulighed for at håndhæve typesikkerhed og forhindre fejl under kørsel. Ved at bruge denne begrænsning kan du angive det sæt af typer, som en generisk typeparameter kan repræsentere. Denne artikel har givet et overblik over 'hvor' constraint i C# og demonstrerede, hvordan man bruger det med en kode.