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.