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