CA2244: Initialisaties van geïndexeerde elementen niet dupliceren
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA2244 |
Titel | Initialisaties van geïndexeerde elementen niet dupliceren |
Categorie | Gebruik |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Als suggestie |
Oorzaak
Een object-initialisatiefunctie heeft meer dan één geïndexeerde element-initialisatiefunctie met dezelfde constante index. De laatste initialisatiefunctie is echter overbodig.
Beschrijving van regel
Met object-initialisatiefuncties kunt u waarden toewijzen aan toegankelijke velden of eigenschappen van een object tijdens het maken zonder dat u een constructor hoeft aan te roepen, gevolgd door regels toewijzingsinstructies.
Geïndexeerde element-initialisatiefuncties in object-initialisatiefuncties moeten unieke elementen initialiseren. Een dubbele index overschrijft een eerdere initialisatie van elementen.
Schendingen oplossen
Als u schendingen wilt oplossen, verwijdert u alle redundante geïndexeerde elementinitiatoren die worden overschreven door een van de volgende initialisatieprogramma's voor elementen. In het volgende codefragment ziet u bijvoorbeeld een schending van de regel en een aantal mogelijke oplossingen:
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
};
}
}
Tip
Er is een codeoplossing beschikbaar voor deze regel in Visual Studio. Als u deze wilt gebruiken, plaatst u de cursor op de schending en drukt u op Ctrl+. (punt). Kies Redundante element-initialisatiefunctie verwijderen uit de lijst met opties die worden weergegeven.
Wanneer waarschuwingen onderdrukken
Geen schendingen voor deze regel onderdrukken.