Megosztás a következőn keresztül:


Gyűjtemény inicializálóinak vagy kifejezéseinek használata (IDE0028)

Tulajdonság Érték
Szabályazonosító IDE0028
Cím Gyűjtemény inicializálóinak használata
Kategória Stílus
Alkategória Nyelvi szabályok (kifejezésszintű beállítások)
Alkalmazandó nyelvek C# és Visual Basic
Beállítások dotnet_style_collection_initializer
dotnet_style_prefer_collection_expression

Áttekintés

Ez a stílusszabály a gyűjtemény inicializálóinak használatára vonatkozik, és ha C# 12 vagy újabb verziót használ, a gyűjtemény inicializálásához gyűjteménykifejezéseket használ.

A .NET 8 (C# 12) és újabb verzióiban, ha a dotnet_style_prefer_collection_expression beállítás meg van adva true, a Visual Studio kódjavítója gyűjteménykifejezés (List<int> list = [1, 2, 3];) használatára konvertálja a gyűjtemény inicializálási kódját. A Visual Basic és a .NET 7 (C# 11) és korábbi verzióiban a kódjavító gyűjtemény inicializáló (List<int> list = new List<int> { 1, 2, 3 };) használatára konvertálja a kódot.

Feljegyzés

Ha a Visual Studióban használja a kódjavítót, az általa kínált módosítás bizonyos esetekben eltérő szemantikával rendelkezhet. Az új példány létrehozása helyett például int[] x = new int[] { }int[] x = [];a fordító egy adott elemet x használ, amely kissé eltérő szemantikával rendelkezik.

Beállítások

A szabályhoz tartozó beállítások értékeinek beállításával megadhatja, hogy a gyűjtemények inicializálásakor előnyben részesítik-e a gyűjtemény inicializálóit és a gyűjteménykifejezéseket.

A beállítások konfigurálásáról további információt az Option formátum című témakörben talál.

dotnet_style_collection_initializer

Tulajdonság Érték Leírás
Beállítás neve dotnet_style_collection_initializer
Beállításértékek true Inkább gyűjtemény inicializálókat használjon.
false Ne részesítse előnyben a gyűjtemény inicializálóit.
Alapértelmezett beállításérték true

dotnet_style_prefer_collection_expression (csak C# esetén)

Tulajdonság Érték Leírás
Beállítás neve dotnet_style_prefer_collection_expression
Beállításértékek true Inkább gyűjteménykifejezéseket használjon.
false Ne részesítse előnyben a gyűjteménykifejezéseket.
Alapértelmezett beállításérték true

Példák

// 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}
// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);

// Fixed code.
List<int> list = new List<int>
{
    1,
    2,
    3
};
// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.AddRange(new[] { 5, 6, 7 });

// Fixed code.
List<int> list = [1, .. new[] { 5, 6, 7 }];
' 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}

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

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

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

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

Az összes kódstílus-szabály letiltásához állítsa be a kategória Style súlyosságát none a konfigurációs fájlban.

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

További információ: Kódelemzési figyelmeztetések letiltása.

Lásd még