Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 19862|Odpověď: 1

[Zdroj] Dědičnost rysů .net/c# Detailně

[Kopírovat odkaz]
Zveřejněno 14.02.2017 11:13:38 | | |
Popis:

Existují dvě třídy, A a B, I A dědí třídu B a B je pak mateřská třída

Vlastnosti TestAttribute jsem nastavil ve třídě A a B...

Poté vezmeme charakteristiky objektu a kód je následující:



Zjistil jsem, že počet výsledků je 1 a atribut je atribut množina A, nikoli atribut množina B, natož sloučený, proč tomu tak je???


[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{}
Existují zde čtyři možné kombinace:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true]  
První případ:

Pokud se dotazujeme na třídu Derive (později uvidíme, jak dotazovat vlastnosti třídy za běhu), zjistíme, že funkce Nápověda neexistuje, protože zděděná vlastnost je nastavena na false.

Druhý případ:

Stejně jako v prvním případě, protože děděné je také nastaveno na nepravdivé.



Třetí situace:

Pro vysvětlení třetího a čtvrtého případu nejprve přidejme do odvozené třídy nějaký kód:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{}
Nyní se podíváme na funkci Nápověda, můžeme získat pouze vlastnosti odvozené třídy, protože děděné je nastaveno na true, ale AllowMultiple je nastaveno na false. Proto je funkce Nápověda základní třídy přepsána funkcí nápovědy odvozené třídy.

Čtvrtá situace:

Zde zjistíme, že odvozená třída má jak funkci Nápověda, tak vlastní Nápovědu, protože Povoleno je nastaveno na true.







Předchozí:Přiřazení C# mezi dvěma vlastnostmi objektů
Další:Nezachycený typError: a(...). rodiče(...). a Já není funkce
 Pronajímatel| Zveřejněno 30.03.2017 9:35:49 |
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com