Mikä on 'missä' -rajoitus
The 'missä' rajoite on C#:n yleinen tyyppirajoitus, jonka avulla kehittäjät voivat määrittää tyyppiparametrin, jota yleinen tyyppi voi edustaa. Rajoitus määritetään käyttämällä 'missä' avainsana, jota seuraa tyyppiparametri ja rajoitus, syntaksi 'missä' rajoitus on seuraava:
julkinen luokka ClassName < T > missä T : rajoite{
// Luokan toteutus
}
Tässä 'Luokan nimi' edustaa luokan nimeä yleisellä tyyppiparametrilla 'T' . The 'missä' avainsana määrittää rajoitteen tyyppiparametrille ja 'rajoite' on tyyppi, jota tyyppiparametrin tulee edustaa.
Otetaan esimerkki yleisestä luokasta, joka hyväksyy tyyppiparametrin ja palauttaa vähimmäisarvon arvojoukosta. Tässä koodi käyttää 'missä' rajoite määrittää, että tyyppiparametrin on oltava numeerinen tyyppi:
järjestelmän avulla ;
julkinen luokka MinValue < T > missä T : struct , Vertailukelpoinen , ICvertible
{
julkinen T GetMinValue ( T [ ] joukko )
{
jos ( joukko == tyhjä || joukko. Pituus == 0 ) {
heittää uusi ArgumentException ( 'Matriisi ei voi olla tyhjä tai tyhjä' ) ;
}
T min = joukko [ 0 ] ;
varten ( int i = 1 ; i < joukko. Pituus ; i ++ ) {
jos ( joukko [ i ] . Vertaa ( min ) < 0 ) {
min = joukko [ i ] ;
}
}
palata min ;
}
}
julkisen luokan ohjelma
{
julkinen staattinen mitätön Main ( )
{
int [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;
MinValue < int > intMinValue = uusi MinValue < int > ( ) ;
int intMin = intMinValue. GetMinValue ( intArray ) ;
Konsoli. WriteLine ( 'IntArrayn vähimmäisarvo: {0}' , intMin ) ;
kaksinkertainen [ ] doubleArray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;
MinValue < kaksinkertainen > doubleMinValue = uusi MinValue < kaksinkertainen > ( ) ;
kaksinkertainen doubleMin = doubleMinValue. GetMinValue ( doubleArray ) ;
Konsoli. WriteLine ( 'doubleArray:n vähimmäisarvo: {0}' , doubleMin ) ;
}
}
Tässä olemme määrittäneet yleisen luokan 'Miniarvo' joka hyväksyy tyyppiparametrin 'T' ja palauttaa vähimmäisarvon arvojoukosta. Seuraavaksi olemme käyttäneet 'missä' rajoite määrittää, että tyyppiparametrin on oltava struct, toteuttaa IComparable-liitäntä ja toteuttaa IConvertible-liitäntä. Tämä rajoitus varmistaa, että vain numeeriset tyypit ovat sallittuja tyyppiparametreina.
Johtopäätös
The 'missä' C#:n rajoitus on tehokas ominaisuus, jonka avulla kehittäjät voivat valvoa tyyppiturvallisuutta ja estää virheet ajon aikana. Käyttämällä tätä rajoitusta voit määrittää joukon tyyppejä, joita yleinen tyyppiparametri voi edustaa. Tämä artikkeli on antanut yleiskatsauksen 'missä' rajoitus C#:ssa ja osoitti kuinka sitä käytetään koodin kanssa.