Delen via


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.

Codefix voor CA2244 - Initialisatiefunctie voor redundante elementen verwijderen

Wanneer waarschuwingen onderdrukken

Geen schendingen voor deze regel onderdrukken.

Zie ook