Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 19862|Antwoord: 1

[Bron] .net/c# detail-overerving van .net/c#

[Link kopiëren]
Geplaatst op 14-02-2017 11:13:38 | | |
Beschrijving:

Er zijn twee klassen, A en B, I A erft klasse B, en dan is B de ouderklasse

Ik heb de TestAttribut-eigenschappen respectievelijk ingesteld in klasse A en klasse B...

Neem vervolgens de kenmerken van het object, en de code is als volgt:



Ik ontdekte dat het aantal resultaten 1 is, en het attribuut is het attribuut dat door A wordt gezet, niet het attribuut dat B het heeft, laat staan samengevoegd, waarom is dat zo???


[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{}
Er zijn hier vier mogelijke combinaties:

[AttribuutGebruik(AttribuutDoelen.Klasse, ToelaatMeervoudig = onwaar, Geërfd = onwaar]  
[AttribuutGebruik(AttribuutDoelen.Klasse, AllowMultiple = waar, Geërfd = onwaar]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true ]  
[AttribuutGebruik(AttribuutDoelen.Klasse, AllowMultiple = waar, Geërfd = waar]  
Het eerste geval:

Als we de Derive-klasse bevragen (we zullen later zien hoe we de eigenschappen van een klasse tijdens runtime kunnen bevragen), zullen we ontdekken dat de Help-functie niet bestaat omdat de geërfde eigenschap op false is gezet.

Tweede geval:

Hetzelfde als in het eerste geval, omdat geërfd ook op false wordt gezet.



De derde situatie:

Om het derde en vierde geval uit te leggen, voegen we eerst wat code toe aan de afgeleide klasse:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{}
Laten we nu de Help-functie opzoeken, we kunnen alleen de eigenschappen van de afgeleide klasse krijgen, omdat geërfd op waar staat, maar AllowMultiple op onwaar. Daarom wordt de Help-functie van de basisklasse overschreven door de hulpfunctie van de afgeleide klasse.

De vierde situatie:

Hier zullen we zien dat de afgeleide klasse zowel de Help-functie van de basisklasse als een eigen Help-functie heeft, omdat AllowMultiple op waar is gezet.







Vorig:C#-toewijzing tussen twee objecteigenschappen
Volgend:Ongevangen TypeFout: a(...). ouders(...). enZelf is geen functie
 Huisbaas| Geplaatst op 30-03-2017 09:35:49 |
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com