Usare inizializzatori o espressioni di raccolta (IDE0028)
Proprietà | Valore |
---|---|
ID regola | IDE0028 |
titolo | Usare gli inizializzatori di raccolta |
categoria | Stile |
sottocategoria | Regole del linguaggio (preferenze a livello di espressione) |
lingue applicabili | C# e Visual Basic |
Opzioni | dotnet_style_collection_initializer |
dotnet_style_prefer_collection_expression |
Panoramica
Questa regola di stile riguarda l'uso di inizializzatori di raccolta e, se si usa C# 12 o versione successiva, espressioni di raccolta per l'inizializzazione della raccolta.
In .NET 8 (C# 12) e versioni successive, se è impostata l'opzione dotnet_style_prefer_collection_expression
su true
, la correzione del codice in Visual Studio converte il codice di inizializzazione della raccolta in modo da usare un'espressione di raccolta (List<int> list = [1, 2, 3];
). In Visual Basic e in .NET 7 (C# 11) e versioni precedenti, la correzione del codice converte il codice in modo da usare un inizializzatore di raccolta (List<int> list = new List<int> { 1, 2, 3 };
).
Nota
Se si usa la correzione del codice in Visual Studio, la modifica offerta potrebbe avere semantiche diverse in alcuni casi. Ad esempio, int[] x = new int[] { }
viene sostituito con int[] x = [];
, che ha una semantica leggermente diversa. Il compilatore usa un singleton per x
anziché creare una nuova istanza.
Opzioni
Impostare i valori delle opzioni associate per questa regola per specificare se gli inizializzatori di raccolta e le espressioni di raccolta sono preferiti durante l'inizializzazione delle raccolte.
Per altre informazioni sulla configurazione delle opzioni, vedere Formato opzione.
dotnet_style_collection_initializer
Proprietà | Valore | Descrizione |
---|---|---|
nome opzione | dotnet_style_collection_initializer | |
valori di opzione | true |
Preferisce usare gli inizializzatori di raccolta. |
false |
Non preferire gli inizializzatori di raccolta. | |
valore di opzione predefinito | true |
dotnet_style_prefer_collection_expression (solo C#)
Proprietà | Valore | Descrizione |
---|---|---|
nome opzione | dotnet_style_prefer_collection_expression | |
valori di opzione | true |
Preferisce usare espressioni di raccolta. |
false |
Non preferire espressioni di raccolta. | |
valore di opzione predefinito | true |
Esempi
// 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}
Eliminare un avviso
Se si desidera eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable IDE0028
// The code that's violating the rule is on this line.
#pragma warning restore IDE0028
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none
nel file di configurazione .
[*.{cs,vb}]
dotnet_diagnostic.IDE0028.severity = none
Per disabilitare tutte le regole di tipo codice, impostare la gravità per la categoria Style
su none
nel file di configurazione .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.
Vedere anche
- espressioni della raccolta
- Usare gli inizializzatori di oggetti (IDE0017)
- Usare l'espressione di raccolta per di matrice (IDE0300)