Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
.NET 6 zeigt eine Vorschau eines neuen Features an, in dem static
Schnittstellenmember als abstract
gekennzeichnet werden können. Dieses Feature umfasst mehrere Änderungen an der ECMA 335-Spezifikation, um Metadatenmuster der Zwischensprache (IL) zuzulassen, die zuvor als illegal angesehen wurden. Weitere Informationen finden Sie unter dotnet/runtime#49558.
Altes Verhalten
Wenn eine statische Schnittstelle als abstract
gekennzeichnet wurde:
- Der C#-Compiler hat den Fehler CS0112 generiert.
- Tools und andere Compiler generierten illegale IL-Metadaten.
Neues Verhalten
Ab .NET 6 können statische Schnittstellenmitglieder als abstract
markiert und erfolgreich kompiliert werden. Darüber hinaus werden die generierten IL-Metadatenmuster aufgrund von Änderungen der ECMA 335-Spezifikation als legal betrachtet.
Die Implementierung von static abstract
Schnittstellenmitgliedern wird durch Typen bereitgestellt, welche die Schnittstelle implementieren.
Hinweis
Für .NET 6 müssen Sie die Vorschaufunktionen in Ihrem Projekt aktivieren, um ein Schnittstellen-Member als static abstract
zu markieren.
Da es sich hierbei um ein neu gültiges IL-Muster handelt, können vorhandene Tools die zugeordneten Metadaten falsch verarbeiten und unerwartetes Verhalten aufweisen. Es ist wahrscheinlich, dass Tools auf das neue Metadatenmuster stoßen, da Schnittstellen mit static abstract
-Mitgliedern jetzt bei den primitiven Typen erscheinen, z. B. System.Int32.
Eingeführte Version
.NET 6
Art der einschneidenden Änderung
Diese Änderung kann sich auf die Binäre Kompatibilität auswirken.
Grund für Änderung
Diese Änderung wurde eingeführt, da es keine Möglichkeit gab, statische Member zu abstrahieren und generalisierten Code zu schreiben, der für Typen gilt, die diese statischen Member definieren. Dies war besonders problematisch für Mitglieder-Typen, die nur in statischer Form vorliegen, z. B. Operatoren.
Empfohlene Aktion
Aktualisieren Sie alle Werkzeuge, die .NET-Binärdateien oder C#-Quellcode verwenden, um das neue Konzept von static abstract
Schnittstellenmitgliedern zu berücksichtigen, einschließlich derjenigen, die jetzt in den .NET-Grundtypen vorhanden sind.
Betroffene APIs
Nicht verfügbar