Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 19862|Svar: 1

[Kilde] .net/c# funktionsarv i detaljer

[Kopier link]
Opslået på 14/02/2017 11.13.38 | | |
Beskrivelse:

Der er to klasser, A og B, I A arver klasse B, og derefter er B forældreklassen

Jeg har sat TestAttribut-egenskaberne i henholdsvis klasse A og klasse B...

Tag derefter objektets karakteristika, og koden er som følger:



Jeg fandt ud af, at antallet af resultater er 1, og attributten er attributten sat af A, ikke attributmængden fra B, for slet ikke at tale om merged – hvorfor er det sådan???


[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{}
Der er fire mulige kombinationer her:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = falsk, Inherited = falsk]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = sand, Inherited = falsk]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = falsk, Inherited = sand]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = sand, Inherited = true]  
Den første sag:

Hvis vi forespørger Derive-klassen (vi ser senere, hvordan man forespørger en klasses egenskaber under kørsel), vil vi opdage, at Help-funktionen ikke eksisterer, fordi den arvede egenskab er sat til falsk.

Anden sag:

Det samme gælder i det første tilfælde, fordi inherited også sættes til falsk.



Den tredje situation:

For at forklare det tredje og fjerde tilfælde, lad os først tilføje noget kode til den afledte klasse:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{}
Lad os nu forespørge Hjælp-funktionen, vi kan kun få egenskaberne for den afledte klasse, fordi inherited sættes til true, men AllowMultiple er sat til false. Derfor overstyres Hjælp-funktionen i basisklassen af hjælpefunktionen i den afledte klasse.

Den fjerde situation:

Her vil vi finde, at den afledte klasse både har basisklassens Hjælpefunktion og sin egen Hjælp-funktion, fordi AllowMultiple er sat til true.







Tidligere:C#-tildeling mellem to objektegenskaber
Næste:Uncaught TypeError: a(...). forældre(...). ogSelvet er ikke en funktion
 Udlejer| Opslået på 30/03/2017 09.35.49 |
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com