Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | valore |
|---|---|
| ID regola | CA2244 |
| Title | Non duplicare inizializzazioni di elementi indicizzati |
| Categoria | Utilizzo |
| La correzione causa un'interruzione o meno | Non rompente |
| Abilitato per impostazione predefinita in .NET 10 | Come suggerimento |
| Linguaggi applicabili | C# e Visual Basic |
Causa
Un inizializzatore di oggetto ha più di un inizializzatore di elementi indicizzati con lo stesso indice costante. Tutti tranne l'ultimo inizializzatore sono ridondanti.
Descrizione regola
Gli inizializzatori di oggetti consentono di assegnare valori a qualsiasi campo o proprietà accessibile di un oggetto in fase di creazione senza dover richiamare un costruttore seguito da righe di istruzioni di assegnazione.
Gli inizializzatori di elementi indicizzati negli inizializzatori di oggetto devono inizializzare elementi univoci. Un indice duplicato sovrascriverà un'inizializzazione dell'elemento precedente.
Come correggere le violazioni
Per correggere le violazioni, rimuovere tutti gli inizializzatori di elementi indicizzati ridondanti sovrascritti da uno o più inizializzatori di elemento successivi. Ad esempio, il frammento di codice seguente mostra una violazione della regola e un paio di possibili correzioni:
using System.Collections.Generic;
class C
{
public void M()
{
var dictionary = new Dictionary<int, int>
{
[1] = 1, // CA2244
[2] = 2,
[1] = 3
};
}
}
using System.Collections.Generic;
class C
{
public void M()
{
var dictionary = new Dictionary<int, int>
{
[2] = 2,
[1] = 3
};
}
}
using System.Collections.Generic;
class C
{
public void M()
{
var dictionary = new Dictionary<int, int>
{
[1] = 1,
[2] = 2
};
}
}
Suggerimento
Una correzione del codice è disponibile per questa regola in Visual Studio. Per usarlo, posizionare il cursore sulla violazione e premere CTRL+. (punto). Scegliere Rimuovi inizializzatore di elementi ridondanti dall'elenco di opzioni presentate.
Quando eliminare gli avvisi
Non eliminare le violazioni per questa regola.