Warum fügt Visual Studio Nullable-Anmerkungen zu neuen Arrays hinzu?
In C# gibt die Initialisierung eines Arrays mit „new“ im Allgemeinen einen nicht nullbaren Typ zurück Wert. Nachdem jedoch die Schnellkorrektur in Visual Studio (VS) verwendet wurde, um var durch den expliziten Typ zu ersetzen, kann die Array-Deklaration eine nullbare Annotation (?) enthalten:
TVal[]? zeroBased = new TVal[size];
Diese von VS hinzugefügte Annotation, impliziert, dass das Array möglicherweise null sein könnte.
Nullable-Typen in C# und VS
Nullable Typen sind Referenztypen, die in C# 8.0 eingeführt wurden, um es Variablen zu ermöglichen, sowohl Nicht-Nullwerte als auch Nullwerte darzustellen. Wenn Nullable im Projekt aktiviert ist oder das Pragma #nullable verwendet wird, kann VS nullfähige Referenztypen für mit var deklarierte Referenztypvariablen ableiten. Diese Schlussfolgerung gilt sogar für Arrays, bei denen es sich um Referenztypen handelt.
Grund für die Nullable-Annotation
Die Nullable-Annotation in der Array-Deklaration ist ein Ergebnis der Interpretation des Codes durch VS . Gemäß der C#-Spezifikation leitet var nullable-Referenztypen für Referenztypen ab, wenn nullable-Kontext aktiviert ist. Dies soll mögliche Nullzuweisungen an Variablen verhindern, die bei der Verwendung von var weniger offensichtlich sind.
Auswirkungen und Verwendung
In den meisten Fällen wird die Nullable-Annotation auf einem neu erstellt Das erstellte Array ist nicht erforderlich. Mit new initialisierte Arrays sind garantiert ungleich Null. Wenn Sie dem Array jedoch später in Ihrem Code Null zuweisen möchten, möchten Sie möglicherweise die Nullable-Annotation beibehalten, um Kompilierungsfehler zu vermeiden.
Fazit
Während es Es mag überflüssig erscheinen, eine Nullable-Anmerkung für neu erstellte Arrays zu haben. Dies ist eine Folge davon, dass VS nullable-Typen für var in nullable-Kontexten ableitet. Beachten Sie, dass diese Anmerkung optional ist, wenn Sie Arrays mit new erstellen. Wenn Sie jedoch beabsichtigen, dem Array später Null zuzuweisen, kann es von Vorteil sein, die Annotation beizubehalten, um die Typsicherheit zu gewährleisten.
Das obige ist der detaillierte Inhalt vonWarum fügt Visual Studio neu erstellten Arrays in C# Nullable-Anmerkungen hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!