Waar gebruiken (algemene typebeperking)

Waar Gebruiken Algemene Typebeperking



Met generieke typebeperkingen in C# kunnen ontwikkelaars de set typen definiëren die een generieke typeparameter kan vertegenwoordigen. Met deze functie kan de compiler typeveiligheid afdwingen en fouten voorkomen die tijdens runtime kunnen optreden. Een van de meest gebruikte beperkingen is de 'waar' beperking, zal dit artikel uitleggen wat de 'waar' beperking is in C# en hoe deze te gebruiken in uw code.

Wat is de 'waar'-beperking

De 'waar' constraint is een generieke typebeperking in C# waarmee ontwikkelaars de typeparameter kunnen specificeren die een generiek type kan vertegenwoordigen. De beperking wordt gespecificeerd met behulp van de 'waar' trefwoord gevolgd door de parameter type en de beperking, de syntaxis voor het gebruik van de 'waar' beperking is als volgt:

openbare klasse ClassName < T > waar T : beperking

{

// Class-implementatie

}

Hier de 'Naam van de klasse' vertegenwoordigt de naam van de klasse met een generieke typeparameter 'T' . De 'waar' trefwoord specificeert de beperking voor de parameter type, en de 'beperking' is het type dat de parameter type moet vertegenwoordigen.







Laten we een voorbeeld nemen van een generieke klasse die een parameter type accepteert en de minimumwaarde uit een reeks waarden retourneert. Hier gebruikt de code de 'waar' beperking om op te geven dat de parameter type een numeriek type moet zijn:



systeem gebruiken ;

openbare klasse MinValue < T > waar T : structuur , IVergelijkbaar , IConverteerbaar

{

openbare T GetMinValue ( T [ ] reeks )

{

als ( reeks == nul || reeks. Lengte == 0 ) {

gooi een nieuwe ArgumentException ( 'Array mag niet null of leeg zijn' ) ;

}

T min = reeks [ 0 ] ;

voor ( int i = 1 ; i < reeks. Lengte ; i ++ ) {

als ( reeks [ i ] . Vergelijk met ( min ) < 0 ) {

min = reeks [ i ] ;

}

}

opbrengst min ;

}

}

programma van de openbare klasse

{

openbaar statisch leegte Voornaamst ( )

{

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

MinWaarde < int > intMinWaarde = nieuwe minwaarde < int > ( ) ;

int intMin = intMinWaarde. GetMinValue ( intArray ) ;

Troosten. Schrijf lijn ( 'Minimumwaarde van intArray: {0}' , intMin ) ;

dubbele [ ] dubbeleArray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;

MinWaarde < dubbele > doubleMinValue = nieuwe minwaarde < dubbele > ( ) ;

dubbele dubbelMin = doubleMinValue. GetMinValue ( dubbeleArray ) ;

Troosten. Schrijf lijn ( 'Minimumwaarde van doubleArray: {0}' , dubbelMin ) ;

}

}

Hier hebben we een generieke klasse gedefinieerd 'Minwaarde' die een typeparameter accepteert 'T' en retourneert de minimumwaarde uit een reeks waarden. Vervolgens hebben we de 'waar' beperking om te specificeren dat de parameter type een struct moet zijn, implementeer de IComparable-interface en implementeer de IConvertible-interface. Deze beperking zorgt ervoor dat alleen numerieke typen zijn toegestaan ​​als typeparameters.



  Vorm, rechthoek Beschrijving automatisch gegenereerd





Conclusie

De 'waar' beperking in C# is een krachtige functie waarmee ontwikkelaars typeveiligheid kunnen afdwingen en fouten tijdens runtime kunnen voorkomen. Door deze beperking te gebruiken, kunt u de set typen specificeren die een generieke typeparameter kan vertegenwoordigen. Dit artikel heeft een overzicht gegeven van de 'waar' beperking in C# en gedemonstreerd hoe het te gebruiken met een code.