Olvasás angol nyelven

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 9-ben 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.

A CA2244 kódjavítása – Redundáns elem inicializáló eltávolítása

Mikor kell letiltani a figyelmeztetéseket?

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

Lásd még