Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 19862|Svar: 1

[Källa] .net/c#-ärftning i detalj

[Kopiera länk]
Publicerad på 2017-02-14 11:13:38 | | |
Beskrivning:

Det finns två klasser, A och B, I A ärver klass B, och sedan är B föräldraklassen

Jag har satt TestAttribut-egenskaperna i klass A respektive klass B...

Ta sedan objektets egenskaper, och koden är följande:



Jag upptäckte att antalet resultat är 1, och attributet är attributet som sätts av A, inte attributet av B, än mindre sammanslaget, varför är det så???


[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{}
Det finns fyra möjliga kombinationer här:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = falsk, Inherited = falsk]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = sann, Ärvd = falsk]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = falsk, Inherited = sann]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = sann, Inherited = sann]  
Det första fallet:

Om vi frågar Derive-klassen (vi kommer senare att se hur man frågar en klasss egenskaper vid körning), kommer vi att upptäcka att Help-funktionen inte existerar eftersom den ärvda egenskapen är satt till false.

Andra fallet:

Samma sak som i det första fallet, eftersom ärvt också sätts till falskt.



Den tredje situationen:

För att förklara det tredje och fjärde fallet, låt oss först lägga till lite kod till den härledda klassen:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{}
Nu ska vi fråga Hjälpfunktionen, vi kan bara få egenskaperna för den härledda klassen, eftersom inherited är satt till true, men AllowMultiple är satt till false. Därför åsidosätts basklassens hjälpfunktion av hjälpfunktionen för den härledda klassen.

Den fjärde situationen:

Här kommer vi att se att den härledda klassen har både basklassens Hjälpfunktion och sin egen Hjälpfunktion, eftersom AllowMultiple är satt till sann.







Föregående:C#-tilldelning mellan två objektegenskaper
Nästa:Ofångad typfel: a(...). föräldrar(...). ochSjälvet är inte en funktion
 Hyresvärd| Publicerad på 2017-03-30 09:35:49 |
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com