Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 19862|Válasz: 1

[Forrás] .net/c# feature inheritance részleteiben

[Linket másol]
Közzétéve 2017. 02. 14. 11:13:38 | | |
Leírás:

Két osztály van, A és B, az I A örökli a B osztályt, majd B az anyaosztály

A TestAttribute tulajdonságokat beállítottam az A osztályba és a B osztályba...

Ezután vegyük az objektum jellemzőit, és a kód a következő:



Azt tapasztaltam, hogy az eredmények száma 1, és az attribútum az A által halmazon lévő attribútum, nem pedig a B által halmazolt attribútum, nemhogy az összevont tulajdonság, miért van ez így???


[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{}
Itt négy lehetséges kombináció létezik:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = hamis, Örökölt = hamis]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = hamis]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = hamis, Örökölt = igaz]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true ]  
Az első eset:

Ha lekérdezzük a Derive osztályt (később meglátjuk, hogyan lehet futásidőben lekérdezni egy osztály tulajdonságait), azt találjuk, hogy a Help funkció nem létezik, mert az örökölt tulajdonság hamisnak van beállítva.

Második eset:

Ugyanúgy, mint az első esetben, mert az öröklött is hamisnak van állítva.



A harmadik helyzet:

A harmadik és negyedik eset magyarázatához először adjunk hozzá némi kódot a származtatott osztályhoz:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{}
Most kérdezzük meg a Help funkciót, csak a származtatott osztály tulajdonságait tudjuk megkapni, mert az öröklött igazra van állítva, de az AllowMultiple false-nak van állítva. Ezért az alaposztály Help funkcióját felülírja a származtatott osztály segítő funkciója.

A negyedik helyzet:

Itt azt találjuk, hogy a származtatott osztály mind az alap osztály Help funkciója, mind a saját Help funkciója van, mert az AllowMultiple true-ra van állítva.







Előző:C# hozzárendelés két objektum tulajdonság között
Következő:Uncaught TypeError: a(...). szülők(...). ésAz én nem funkció
 Háziúr| Közzétéve 2017. 03. 30. 9:35:49 |
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com