Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 17968|Atbildi: 0

[Avots] C#, kur lietojuma analīze

[Kopēt saiti]
Publicēts 12.07.2016 11:35:43 | | |

Klauzula where tiek izmantota, lai norādītu tipa ierobežojumus, kas var kalpot kā mainīgie tipa parametriem, kas definēti vispārējās deklarācijās.
1. Saskarnes ierobežojumi.
Piemēram, varat deklarēt vispārēju klasi MyGenericClass, lai tipa parametrs T varētu ieviest IComparable<T> interfeisu:

publiskā klase MyGenericClass<T>, kur T:IComparable { }

2. Bāzes klases ierobežojums: norāda, ka tipam ir jāizmanto norādītā klase kā pamatklase (vai pati klase), lai to izmantotu kā šī vispārējā tipa tipa parametru.
Kad šāds ierobežojums ir izmantots, tam jāparādās pirms visiem pārējiem parametra tipa ierobežojumiem.
klase MyClassy<T, U>
kur T : klase
kur U : struct
{
}

3.where klauzula var ietvert arī konstruktora ierobežojumus.
Jauno operatoru var izmantot, lai izveidotu tipa parametra instanci; Bet tipa arguments ir jāierobežo ar konstruktora ierobežojumu new(). Ierobežojums new() informē kompilatoru, ka jebkura veida argumentam ir jābūt pieejamam bez parametriem (vai noklusējuma) konstruktoram. Piemēram:
publiskā klase MyGenericClass <T> , kur T: IComparable, new()
{
Šāda rindiņa nav iespējama bez new() ierobežojuma:
T postenis = jauns T();
}
Ierobežojums new() tiek parādīts klauzulas where beigās.

4. Vairāku tipu parametriem katrs tipa parametrs izmanto klauzulu where,
Piemēram:
interfeiss MyI { }
klase Vārdnīca<TKey,TVal>
kur TKey: IComparable, IEnumerable
kur TVal: MyI
{
public void Add(TKey key, TVal val)
{
}
}

5. Varat arī pievienot ierobežojumus vispārējo metožu tipa parametriem, piemēram:

publiskais bool MyMethod<T>(T t) kur T : IMyInterface { }

Ņemiet vērā, ka tipa parametru ierobežojumu aprakstīšanas sintakse ir vienāda gan pārstāvjiem, gan metodēm:

delegāts T MyDelegate<T>(), kur T : jauns()





Vispārīgi, kur

Vispārīgi Kur var kvalificēties tipa parametri. Ir vairāki veidi.

·kur T : struct ierobežo tipa parametru T, kas jāpārmanto no System.ValueType.

·kur T: klase ierobežo tipu Parametram T jābūt atsauces tipam, tas ir, to nevar pārmantot no System.ValueType.

kur T : new() ierobežo tipa parametru T jābūt noklusējuma konstruktoram

·kur T : NameOfClass ierobežo tipa parametru T jāpārmanto no klases vai jāievieš interfeiss.

Šos apzīmētājus var kombinēt, piemēram: publiskā klase Punkts, kur T : klase, IComparable, new()




Iepriekšējo:c# NHibernate palīdzības klase
Nākamo:c# http klausās pavedienus ar HttpListener
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com