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

Ansehen: 19482|Antwort: 2

[Quelle] C# 8.0 kann ein Null-Referenztyp sein

[Link kopieren]
Veröffentlicht am 26.03.2022, 16:40:21 | | | |
Vor C# 8.0 konnten alle Referenztypen null sein. Null-Referenztypen beziehen sich auf eine Menge von Merkmalen, die in C# 8.0 eingeführt wurden und verwendet werden können fürMinimiere die Wahrscheinlichkeit, dass dein Code Runtime-Würfe verursacht。 Nullierbare Referenztypen umfassen drei Funktionen, um diese Ausnahmen zu vermeiden, darunter die Möglichkeit, Referenztypen explizit als nullierbar zu markieren:

  • Optimierte statische Flussanalyse, um festzustellen, ob eine Variable null ist, bevor sie unreferenziert wird.
  • Attribute, die verwendet werden, um die API zu annotieren, damit Stream Analytics den Nullzustand bestimmt.
  • Variablenannotationen, die Entwickler verwenden können, um explizit den erwarteten Nullzustand einer Variablen zu deklarieren.


Nullzustandsanalyse und Variablenannotationen sind für bestehende Projekte standardmäßig deaktiviert, was bedeutet, dass alle Referenztypen weiterhin nullierbar sind. Ab .NET 6 sind diese Funktionen standardmäßig für neue Projekte aktiviert.

Dokumentation:Der Hyperlink-Login ist sichtbar.

Was ein Referenztyp, der null sein kann, tun sollMinimieren Sie die Wahrscheinlichkeit, dass Ihre Anwendung zur Laufzeit ein System.NullReferenceException auslöst.

In einem Projekt, das ich mit .NET 6 entwickle, erstelle ich eine Name-Eigenschaft für eine neue Eigenschaft, die mir folgende Warnung vermittelt:

Beim Verlassen des Konstruktors muss die nicht-nullbare Eigenschaft "Name" einen nicht-nullen Wert enthalten. Betrachten Sie, die Eigenschaft als null zu deklarieren.


Obwohl es eine Warnung ist, ist es sehr nervig! Wie kann man diese Warnung beheben? Der Standardwert für die Zuweisung ist eine leere Zeichenkette, und der Code lautet wie folgt:

Das heißt, wenn die Eigenschaft nicht manuell zugewiesen wird, ist der Standardwert der Eigenschaft eine leere Zeichenkette.

Wenn eine lokale Variable verwendet wird,Der Typ ist Schnur? kann auch Warnungen auslösen, wie in der untenstehenden Abbildung dargestellt:



Lösung: Bestimmen Sie, ob die Variable null ist, bevor Sie sie verwenden, und falls ja, führen Sie den unten stehenden Code nicht aus, sonst denken SieDie Variable kann niemals null sein, kann verwendet werdenArgumentNullException.ThrowIfNull(assemblyFullName); Warnungen können ebenfalls entfernt werden! Mit anderen Worten: Wenn die Variable null ist, wird direkt während der Laufzeit eine Ausnahme ausgelöst!

Zusammenfassung: C# 8.0 hat dieses Feature eingeführt, und ich persönlich denke, dass es dazu dient, die Strenge der Entwickler zu verbessern und einige kleinere Fehler zu vermeiden.

Für weitere Methodenlösungen, die null sein können, siehe bitte:Der Hyperlink-Login ist sichtbar.





Vorhergehend:Abfrage der entfernten Adresse des Git des aktuellen Projekts
Nächster:ASP.NET Core (zwölf) Frontend-JS, CSS-Bündelung und Kompression
Veröffentlicht am 26.03.2022, 20:57:32 |
Lernen lernen
Veröffentlicht am 28.03.2022, 08:23:47 |
Komm und lerne
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