Usare inizializzatori o espressioni di raccolta (IDE0028)
Proprietà | valore |
---|---|
ID regola | IDE0028 |
Title | Usare gli inizializzatori di insieme |
Categoria | Style |
Sottocategoria | Regole del linguaggio (preferenze a livello di espressione) |
Linguaggi applicabili | C# r 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, le 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
, il correttore di 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, il correttore 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 il sistema di 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 delle opzioni.
dotnet_style_collection_initializer
Proprietà | valore | Descrizione |
---|---|---|
Nome opzione | dotnet_style_collection_initializer | |
Valori delle opzioni | true |
Preferisce usare gli inizializzatori di raccolta. |
false |
Non preferire gli inizializzatori di raccolta. | |
Valore dell'opzione predefinito | true |
dotnet_style_prefer_collection_expression (solo C#)
Proprietà | valore | Descrizione |
---|---|---|
Nome opzione | dotnet_style_prefer_collection_expression | |
Valori delle opzioni | true |
Preferisce usare espressioni di raccolta. |
false |
Non preferire espressioni di raccolta. | |
Valore dell'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}
// 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}
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à none
su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.IDE0028.severity = none
Per disabilitare tutte le regole in stile 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.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per