C# ben a where kulcsszót mire használják és miért van rájuk szükség?
Nem generikus típusoknál ilyet nem is látni.Ott csak where nélkül simán megadják,hogy pl:
class Ember: public Lábak {}
Generik esetében pedig miért így:
class Ember<T> where T: Lábak {}
Miről beszélsz??? :)
Sablon paramétereket úgy tudom,hogy a példányosításnál a <> jelek között kell megadni.
Nem értem hogy gondolod.
Elég volna csak így:
class Ember<T>: public Lábak {}
//Példányosítás
Ember<int> a = new Ember();
A "where T: Lábak"-ben ott van, hogy ahol a T Lábakból származik.
Tehát nem csinálhatsz Ember<int>-et.
Ember<Lábak>-ot csiálhatsz, vagy Ember<bármi>-t, ahol a bármi a Lábakból származik.
class Ember : Lábak
Az Ember osztály származtatása a lábakból.
class Ember<T> where T : Lábak
Megszorítás T-re
C# ban a where kulcsszót mire használják és miért van rájuk szükség?
Jelen esetben azért, amiért a felettem hozzászóló írta, hogy ne lehessen akármilyen típussal létrehozni ember objektumokat.
Általánosabban a where kulcsszó nem csak itt fordul elő, pl. linq lekérdezéseknél is, ott más a funkciója.
A generikus típust szűkítheted a segítségével,
tehát megadhatod, hogy a te saját generikus típusod nem fogad el bármilyen típust, csak olyat, ahol a típus a Lábak-ból származik közvetlenül vagy közvetve.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!