Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 17968|Odgovoriti: 0

[Vir] C# kjer analiza uporabe

[Kopiraj povezavo]
Objavljeno na 12. 07. 2016 11:35:43 | | |

Klavzula kjer se uporablja za določanje omejitev tipa, ki lahko služijo kot spremenljivke za tipne parametre, definirane v generičnih deklaracijah.
1. Omejitve vmesnika.
Na primer, lahko deklarirate generični razred MyGenericClass, tako da parameter tipa T lahko implementira IComparable<T> vmesnik:

public class MyGenericClass<T>, kjer T:IComparable { }

2. Omejitev osnovnega razreda: Pomeni, da mora tip uporabiti določen razred kot osnovni razred (ali sam razred), ki se uporablja kot parameter tipa za ta generični tip.
Ko je takšna omejitev uporabljena, se mora pojaviti pred vsemi drugimi omejitvami na tip parametra.
razred MyClassy<T, U>
kjer je T : razred
kjer je U : struct
{
}

Klavzula 3.kjer lahko vključuje tudi omejitve konstruktorjev.
Novi operator lahko uporabite za ustvarjanje primerka parametra tipa; Vendar mora biti tip argument omejen s konstruktorsko omejitvijo new() za to. Omejitev new() prevajalniku sporoči, da mora imeti vsak tip argumenta dostopen konstruktor brez parametrov (ali privzeti). Na primer:
javni razred MyGenericClass <T> , kjer T: IComparable, new()
{
Naslednja vrstica ni mogoča brez omejitve new():
T element = nov T();
}
Omejitev new() se pojavi na koncu klavzule where (kje).

4. Za več tipnih parametrov vsak tipni parameter uporablja klavzulo kje,
Na primer:
interface MyI { }
razredni slovar<TKey, TVal>
kjer TKey: Primerljivo, IEštevljivo
kjer TVal: MyI
{
javni void Dodaj (TKey ključ, TVal val)
{
}
}

5. Omejitve lahko pripišete tudi tipnim parametrom generičnih metod, kot so:

public bool MyMethod<T>(T t) kjer T : IMyInterface { }

Upoštevajte, da je sintaksa za opis omejitev parametrov tipa enaka tako za delegate kot za metode:

delegate T MyDelegate<T>(), kjer je T : new()





Generično Kjer

Generično Kjer lahko kvalificira tipne parametre. Obstaja več načinov.

·kjer T : struct omejuje parameter tipa, ki ga mora T podedovati od System.ValueType.

·kjer T: razred omejuje tip Parameter T mora biti referenčni tip, torej ga ni mogoče podedovati iz System.ValueType.

kjer T : new() omejuje parameter tipa T, ki mora imeti privzetega konstruktorja

·kjer T : NameOfClass omejuje parameter tipa, ki ga mora T podedovati od razreda ali implementirati vmesnik.

Te kvalifikacije lahko združimo, na primer: javni razred Točka, kjer T : razred, IComparable, new()




Prejšnji:c# NHibernate tečaj za pomoč
Naslednji:c# http posluša niti s HttpListenerjem
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com