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.