Megosztás a következőn keresztül:


CA2244: Ne duplikálja az indexelt elemek inicializálását

Tulajdonság Érték
Szabályazonosító CA2244
Cím Ne duplikálja az indexelt elemek inicializálását
Kategória Használat
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 8-ban Javaslatként

Ok

Az objektuminicializáló több indexelt eleminicializálóval rendelkezik, ugyanazzal az állandó indexel. Az utolsó inicializáló ki nem redundáns.

Szabály leírása

Az objektum inicializálói lehetővé teszik értékek hozzárendelését egy objektum bármely akadálymentes mezőjéhez vagy tulajdonságához a létrehozáskor anélkül, hogy konstruktort kellene meghívnia, amelyet a hozzárendelési utasítások sorai követnek.

Az objektum-inicializálók indexelt elem-inicializálóinak egyedi elemeket kell inicializálnia. A duplikált index felülír egy korábbi elem inicializálását.

Szabálysértések kijavítása

A szabálysértések kijavításához távolítsa el az összes redundáns indexelt elem-inicializálót, amelyet a következő elem-inicializáló(k) felülírnak. A következő kódrészlet például a szabály megsértését és néhány lehetséges javítást mutat be:

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
        };
    }
}

Tipp.

Ehhez a szabályhoz kódjavítás érhető el a Visual Studióban. A használathoz helyezze a kurzort a szabálysértésre, és nyomja le a Ctrl+ billentyűt. (pont). Válassza a Redundáns elem inicializálójának eltávolítása lehetőséget a megjelenő lehetőségek listájából.

Code fix for CA2244 - Remove redundant element initializer

Mikor kell letiltani a figyelmeztetéseket?

Ne tiltsa le a szabály megsértését.

Kapcsolódó információk