Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Eigenschap | Waarde |
|---|---|
| Regel-id | CA2244 |
| Titel | Initialisaties van geïndexeerde elementen niet dupliceren |
| Categorie | Gebruik |
| Fix kan brekend of niet-brekend zijn | Niet-brekend |
| Standaard ingeschakeld in .NET 10 | Als suggestie |
| Toepasselijke talen | C# en Visual Basic |
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.
Hoe schendingen op te lossen
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. Om het te gebruiken, plaatst u de cursor op de overtreding en drukt u op Ctrl+. (punt). Kies Redundante element-initialisatiefunctie verwijderen uit de lijst met opties die worden weergegeven.
Wanneer waarschuwingen onderdrukken
Onderdruk geen schendingen van deze regel.