Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 19862|Antwort: 1

[Quelle] .net/c# Feature-Vererbung im Detail

[Link kopieren]
Veröffentlicht am 14.02.2017 11:13:38 | | |
Beschreibung:

Es gibt zwei Klassen, A und B, I A erbt Klasse B, und dann ist B die Elternklasse

Ich habe die TestAttribut-Eigenschaften in Klasse A bzw. Klasse B festgelegt...

Dann nehmen wir die Eigenschaften des Objekts, und der Code ist wie folgt:



Ich habe festgestellt, dass die Anzahl der Ergebnisse 1 ist und das Attribut das von A gesetzte Attribut ist, nicht das von B gesetzte, geschweige denn zusammengeführt – warum ist das so???


[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{}
Hier gibt es vier mögliche Kombinationen:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = falsch, Inherited = true ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = wahr, Vererbt = wahr]  
Der erste Fall:

Wenn wir die Derive-Klasse abfragen (wir werden später sehen, wie man die Eigenschaften einer Klasse zur Laufzeit abfragt), stellen wir fest, dass die Help-Funktion nicht existiert, weil die vererbte Eigenschaft auf false gesetzt ist.

Zweiter Fall:

Genauso wie im ersten Fall, denn vererbt ist ebenfalls auf falsch gesetzt.



Die dritte Situation:

Um den dritten und vierten Fall zu erklären, fügen wir zunächst etwas Code zur abgeleiteten Klasse hinzu:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{}
Suchen wir nun die Hilfefunktion ab, wir können nur die Eigenschaften der abgeleiteten Klasse erhalten, weil inherited auf true gesetzt ist, AllowMultiple jedoch auf false gesetzt ist. Daher wird die Hilfe-Funktion der Basisklasse von der Hilfe-Funktion der abgeleiteten Klasse überschrieben.

Die vierte Situation:

Hier stellen wir fest, dass die abgeleitete Klasse sowohl die Hilfe-Funktion der Basisklasse als auch ihre eigene Hilfe-Funktion besitzt, da AllowMultiple auf true gesetzt ist.







Vorhergehend:C#-Zuweisung zwischen zwei Objekteigenschaften
Nächster:Uncaught TypeError: a(...). Eltern(...). undSelbst ist keine Funktion
 Vermieter| Veröffentlicht am 30.03.2017 09:35:49 |
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com