Delen via


Initialisatieprogramma's of expressies voor verzamelingen gebruiken (IDE0028)

Eigenschap Waarde
regel-id IDE0028
titel Initialisatiefunctie voor verzamelingen gebruiken
categorie Stijl
subcategorie Taalregels (voorkeuren op expressieniveau)
Toepasselijke talen C# en Visual Basic
opties dotnet_style_collection_initializer
dotnet_style_prefer_collection_expression

Overzicht

Deze stijlregel betreft het gebruik van initialisatiefunctie voor verzamelingen en, als u C# 12 of hoger gebruikt, verzamelingsexpressies voor de initialisatie van de verzameling.

Als u in .NET 8 (C# 12) en latere versies de optie dotnet_style_prefer_collection_expression hebt ingesteld op true, converteert de code in Visual Studio de initialisatiecode van uw verzameling om een verzamelingsexpressie (List<int> list = [1, 2, 3];) te gebruiken. In Visual Basic en in .NET 7 (C# 11) en eerdere versies converteert de code de code uw code converteert om een initialisatiefunctie voor verzamelingen (List<int> list = new List<int> { 1, 2, 3 };) te gebruiken.

Notitie

Als u de oplossing voor code in Visual Studio gebruikt, kan de wijziging in sommige gevallen verschillende semantiek hebben. int[] x = new int[] { } wordt bijvoorbeeld vervangen door int[] x = [];, die iets andere semantiek heeft: de compiler maakt gebruik van een singleton voor x in plaats van een nieuw exemplaar te maken.

Opties

Stel de waarden van de bijbehorende opties voor deze regel in om op te geven of initialisatie- en verzamelingsexpressies de voorkeur hebben bij het initialiseren van verzamelingen.

Zie Option-indelingvoor meer informatie over het configureren van opties.

dotnet_style_collection_initializer

Eigenschap Waarde Beschrijving
optienaam dotnet_style_collection_initializer
optiewaarden true Gebruik liever initialisatiefunctie voor verzamelingen.
false Geef geen voorkeur aan initialisatie van verzamelingen.
standaardoptiewaarde true

dotnet_style_prefer_collection_expression (alleen C#)

Eigenschap Waarde Beschrijving
optienaam dotnet_style_prefer_collection_expression
optiewaarden true Gebruik liever verzamelingsexpressies.
false Geef geen voorkeur aan verzamelingsexpressies.
standaardoptiewaarde true

Voorbeelden

// 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}

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

#pragma warning disable IDE0028
// The code that's violating the rule is on this line.
#pragma warning restore IDE0028

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none in het configuratiebestand.

[*.{cs,vb}]
dotnet_diagnostic.IDE0028.severity = none

Als u alle regels voor de codestijl wilt uitschakelen, stelt u de ernst voor de categorie Style in op none in het configuratiebestand.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Zie Codeanalysewaarschuwingen onderdrukkenvoor meer informatie.

Zie ook