Verwenden von Auflistungsinitialisierern oder Ausdrücken (IDE0028)
Eigentum | Wert |
---|---|
Regel-ID | IDE0028 |
Titel | Verwenden von Sammlungsinitialisierern |
Kategorie- | Stil |
Unterkategorie | Sprachregeln (Einstellungen auf Ausdrucksebene) |
Anwendbare Sprachen | C# und Visual Basic |
Optionen | dotnet_style_collection_initializer |
dotnet_style_prefer_collection_expression |
Überblick
Diese Formatvorlagenregel betrifft die Verwendung von Auflistungsinitialisierern und bei Verwendung von C# 12 oder höher Auflistungsausdrücke für die Sammlungsinitialisierung.
Wenn Sie in .NET 8 (C# 12) und höheren Versionen die option dotnet_style_prefer_collection_expression
auf true
festgelegt haben, konvertiert der Codekorrektur in Visual Studio Ihren Sammlungsinitialisierungscode in einen Sammlungsausdruck (List<int> list = [1, 2, 3];
). In Visual Basic und in .NET 7 (C# 11) und früheren Versionen konvertiert der Codekorrektur Ihren Code in die Verwendung eines Sammlungsinitialisierers (List<int> list = new List<int> { 1, 2, 3 };
).
Anmerkung
Wenn Sie die Codekorrektur in Visual Studio verwenden, kann die Änderung, die es bietet, in einigen Fällen unterschiedliche Semantik aufweisen. Beispielsweise wird int[] x = new int[] { }
durch int[] x = [];
ersetzt, die geringfügig andere Semantik aufweist– der Compiler verwendet ein Singleton für x
anstelle einer neuen Instanz.
Optionen
Legen Sie die Werte der zugehörigen Optionen für diese Regel fest, um anzugeben, ob Auflistungsinitialisierer und Auflistungsausdrücke beim Initialisieren von Auflistungen bevorzugt werden.
Weitere Informationen zum Konfigurieren von Optionen finden Sie unter Optionsformat.
dotnet_style_collection_initializer
Eigentum | Wert | Beschreibung |
---|---|---|
Optionsname | dotnet_style_collection_initializer | |
Optionswerte | true |
Bevorzugen Sie die Verwendung von Sammlungsinitialisierern. |
false |
Bevorzugen Sie keine Sammlungsinitialisierer. | |
Standardwert | true |
dotnet_style_prefer_collection_expression (nur C#)
Eigentum | Wert | Beschreibung |
---|---|---|
Optionsname | dotnet_style_prefer_collection_expression | |
Optionswerte | true |
Verwenden Sie Auflistungsausdrücke lieber. |
false |
Bevorzugen Sie keine Auflistungsausdrücke. | |
Standardwert | true |
Beispiele
// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
// Fixed code (with dotnet_style_prefer_collection_expression = true)
List<int> list = [1, 2, 3];
' IDE0028 violation.
Dim list = New List(Of Integer)
list.Add(1)
list.Add(2)
list.Add(3)
' Fixed code.
Dim list = New List(Of Integer) From {1, 2, 3}
Unterdrücken einer Warnung
Wenn Sie nur einen einzelnen Verstoß unterdrücken möchten, fügen Sie Ihrer Quelldatei Präprozessordirektiven hinzu, um die Regel zu deaktivieren und dann erneut zu aktivieren.
#pragma warning disable IDE0028
// The code that's violating the rule is on this line.
#pragma warning restore IDE0028
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdateiauf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.IDE0028.severity = none
Um alle Codestilregeln zu deaktivieren, legen Sie den Schweregrad für die Kategorie fest, Style
in der Konfigurationsdateiauf none
.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Weitere Informationen finden Sie unter So unterdrücken Sie Codeanalysewarnungen.