Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 19862|Odpoveď: 1

[Zdroj] Detailné dedenie funkcií .NET/C#

[Kopírovať odkaz]
Zverejnené 14. 2. 2017 11:13:38 | | |
Popis:

Existujú dve triedy, A a B, I A dedí triedu B a B je rodičovská trieda

Vlastnosti TestAttribute som nastavil v triede A a triede B...

Potom vezmime charakteristiky objektu a kód je nasledovný:



Zistil som, že počet výsledkov je 1 a atribút je atribút množina A, nie atribút množina B, nieto ešte zlúčenie, prečo je to tak???


[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{}
Existujú štyri možné kombinácie:

[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 ]  
Prvý prípad:

Ak sa dotazujeme na triedu Derive (neskôr uvidíme, ako sa za behu pýtať vlastnosti triedy), zistíme, že funkcia Pomoc neexistuje, pretože zdedená vlastnosť je nastavená na false.

Druhý prípad:

Rovnako ako v prvom prípade, pretože zdedené je tiež nastavené na nepravdivé.



Tretia situácia:

Aby sme vysvetlili tretí a štvrtý prípad, najprv pridajme kód k odvodenej triede:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{}
Teraz sa pozrime na funkciu Pomoc, môžeme získať len vlastnosti odvodenej triedy, pretože zdedené je nastavené na true, ale AllowMultiple je nastavené na false. Preto je funkcia Pomoc základnej triedy prepísaná funkciou pomoci odvodenej triedy.

Štvrtá situácia:

Tu zistíme, že odvodená trieda má funkciu Pomoc ako základná trieda aj vlastnú Pomoc, pretože AllowMultiple je nastavený na true.







Predchádzajúci:Priradenie C# medzi dvoma vlastnosťami objektov
Budúci:Nezachytená TypeError: a(...). rodičia(...). a Ja nie je funkcia
 Prenajímateľ| Zverejnené 30. 3. 2017 9:35:49 |
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com