C#-Typen erweitern: Alternativen zu nativen Erweiterungseigenschaften
C# verfügt derzeit nicht über native Unterstützung für Erweiterungseigenschaften. Das bedeutet, dass Sie Eigenschaften nicht direkt zu vorhandenen Typen hinzufügen können. Es gibt jedoch mehrere Problemumgehungen:
Problemumgehungen für das Hinzufügen von Eigenschaften:
TypeDescriptor
, um zur Laufzeit Attribute an Objekte anzuhängen und so erweiterte Eigenschaften effektiv zu simulieren.Ein Blick in die Zukunft: Zukünftige Möglichkeiten
Obwohl sie noch nicht implementiert sind, wurden Erweiterungseigenschaften als zukünftige C#-Funktion vorgeschlagen. Das umfassendere „Extension Everything“-Konzept, das die Eigentumserweiterung umfasst, wird für zukünftige Sprachversionen in Betracht gezogen.
Aktueller Status und vorgeschlagene Syntax
Ab Mai 2017 befand sich der Erweiterungseigenschaftsvorschlag weiterhin in der Vorschlagsphase, wobei sich die Syntax ändern konnte. Die vorgeschlagene Syntax ähnelte dieser:
<code class="language-csharp">public extension DerivedType of BaseType : Interface { public PropertyType PropertyName { get; set; } }</code>
Dies würde effektiv PropertyName
zu BaseType
hinzufügen.
Zusammenfassung
Obwohl direkte Erweiterungseigenschaften derzeit in C# nicht verfügbar sind, gibt es praktikable Problemumgehungen. Die mögliche Einbeziehung von „extension everything“ deutet auf zukünftige Verbesserungen der Typerweiterbarkeit hin.
Das obige ist der detaillierte Inhalt vonWie kann ich Eigenschaften zu vorhandenen Typen in C# ohne native Erweiterungseigenschaften hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!