Mi a „hol” megkötés
A 'ahol' A megszorítás egy általános típuskényszer a C#-ban, amely lehetővé teszi a fejlesztők számára, hogy megadják azt a típusparamétert, amelyet egy általános típus képviselhet. A megszorítást a 'ahol' kulcsszó, majd a típus paraméter és a megszorítás, a használat szintaxisa 'ahol' a korlátozás a következő:
nyilvános osztály Osztálynév < T > ahol T : kényszer{
// Osztály megvalósítás
}
Itt a 'Osztály név' az osztály nevét jelenti egy általános típusparaméterrel 'T' . A 'ahol' kulcsszó megadja a típus paraméter megszorítását, és a 'kényszer' az a típus, amelyet a type paraméternek képviselnie kell.
Vegyünk egy példát egy általános osztályra, amely elfogad egy típusparamétert, és a minimális értéket adja vissza egy értéktömbből. Itt a kód a 'ahol' megszorítás annak meghatározására, hogy a típusparaméternek numerikus típusúnak kell lennie:
rendszer segítségével ;
nyilvános osztály MinValue < T > ahol T : struct , Összehasonlítható , IKabrió
{
nyilvános T GetMinValue ( T [ ] sor )
{
ha ( sor == nulla || sor. Hossz == 0 ) {
dobj új ArgumentException ( 'A tömb nem lehet üres vagy üres' ) ;
}
T min = sor [ 0 ] ;
számára ( int én = 1 ; én < sor. Hossz ; én ++ ) {
ha ( sor [ én ] . Összehasonlítani ( min ) < 0 ) {
min = sor [ én ] ;
}
}
Visszatérés min ;
}
}
nyilvános osztály Program
{
nyilvános statikus üres Fő ( )
{
int [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;
MinValue < int > intMinValue = új MinValue < int > ( ) ;
int intMin = intMinValue. GetMinValue ( intArray ) ;
Konzol. WriteLine ( 'Az intArray minimális értéke: {0}' , intMin ) ;
kettős [ ] doubleArray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;
MinValue < kettős > doubleMinValue = új MinValue < kettős > ( ) ;
kettős doubleMin = doubleMinValue. GetMinValue ( doubleArray ) ;
Konzol. WriteLine ( 'A doubleArray minimális értéke: {0}' , doubleMin ) ;
}
}
Itt definiáltunk egy általános osztályt 'MinValue' amely elfogad egy típusparamétert 'T' és visszaadja a minimális értéket egy értéktömbből. Ezt követően a 'ahol' megszorítás annak megadásához, hogy a típusparaméternek structnak kell lennie, megvalósítani az IComparable interfészt és megvalósítani az IConvertible interfészt. Ez a megszorítás biztosítja, hogy csak numerikus típusok legyenek megengedettek típusparaméterként.
Következtetés
A 'ahol' A megszorítás a C#-ban egy hatékony funkció, amely lehetővé teszi a fejlesztők számára, hogy kényszerítsék ki a típusbiztonságot, és megakadályozzák a hibákat futás közben. Ezzel a megszorítással megadhatja, hogy egy általános típusparaméter milyen típusú típusokat képviselhet. Ez a cikk áttekintést adott a 'ahol' megszorítást a C#-ban, és bemutatta, hogyan kell kóddal használni.