Hur man använder var (generisk typbegränsning)

Hur Man Anvander Var Generisk Typbegransning



Generiska typbegränsningar i C# tillåter utvecklare att definiera uppsättningen typer som en generisk typparameter kan representera. Denna funktion gör det möjligt för kompilatorn att upprätthålla typsäkerhet och förhindrar fel som kan uppstå under körning. En av de mest använda begränsningarna är 'var' begränsning, kommer den här artikeln att förklara vad 'var' constraint är i C# och hur man använder det i din kod.

Vad är 'var'-begränsningen

De 'var' constraint är en generisk typbegränsning i C# som tillåter utvecklare att specificera typparametern som en generisk typ kan representera. Begränsningen specificeras med hjälp av 'var' nyckelordet följt av parametern type och begränsningen, syntaxen för att använda 'var' begränsningen är som följer:

offentlig klass Klassnamn < T > där T : begränsning

{

// Klassimplementering

}

Här 'Klassnamn' representerar namnet på klassen med en generisk typparameter 'T' . De 'var' nyckelordet anger begränsningen för parametern type och 'begränsning' är den typ som typparametern måste representera.







Låt oss ta ett exempel på en generisk klass som accepterar en typparameter och returnerar minimivärdet från en matris med värden. Här använder koden 'var' begränsning för att specificera att typparametern måste vara en numerisk typ:



använder System ;

offentlig klass MinVärde < T > där T : struktur , Jämförbart , IConvertible

{

offentliga T GetMinValue ( T [ ] array )

{

om ( array == null || array. Längd == 0 ) {

kasta nytt ArgumentException ( 'Array kan inte vara null eller tom' ) ;

}

T min = array [ 0 ] ;

för ( int i = 1 ; i < array. Längd ; i ++ ) {

om ( array [ i ] . Jämföra med ( min ) < 0 ) {

min = array [ i ] ;

}

}

lämna tillbaka min ;

}

}

offentlig klass program

{

offentlig statisk tomhet Main ( )

{

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

MinVärde < int > intMinValue = nytt MinVärde < int > ( ) ;

int intMin = intMinValue. GetMinValue ( intArray ) ;

Trösta. Skrivlinje ( 'Minsta värde för inArray: {0}' , intMin ) ;

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

MinVärde < dubbel > doubleMinValue = nytt MinVärde < dubbel > ( ) ;

dubbel dubbelMin = doubleMinValue. GetMinValue ( doubleArray ) ;

Trösta. Skrivlinje ( 'Minsta värde för doubleArray: {0}' , dubbelMin ) ;

}

}

Här har vi definierat en generisk klass 'MinValue' som accepterar en typparameter 'T' och returnerar minimivärdet från en matris med värden. Därefter har vi använt 'var' begränsning för att specificera att typparametern måste vara en struct, implementera IComparable-gränssnittet och implementera IConvertible-gränssnittet. Denna begränsning säkerställer att endast numeriska typer är tillåtna som typparametrar.



  Form, rektangel Beskrivning genereras automatiskt





Slutsats

De 'var' constraint i C# är en kraftfull funktion som tillåter utvecklare att upprätthålla typsäkerhet och förhindra fel under körning. Genom att använda denna begränsning kan du specificera uppsättningen typer som en generisk typparameter kan representera. Den här artikeln har gett en översikt över 'var' constraint i C# och visade hur man använder den med en kod.