CA2244: Neduplikujte inicializace indexovaných prvků
Vlastnost | Hodnota |
---|---|
ID pravidla | CA2244 |
Název | Neduplikujte inicializace indexovaných elementů. |
Kategorie | Využití |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 8 | Jako návrh |
Příčina
Inicializátor objektů má více než jeden inicializátor indexovaného prvku se stejným konstantním indexem. Všechny kromě posledního inicializátoru jsou redundantní.
Popis pravidla
Inicializátory objektů umožňují přiřazovat hodnoty ke všem přístupným polím nebo vlastnostem objektu při vytváření, aniž byste museli vyvolat konstruktor následovaný řádky příkazů přiřazení.
Inicializátory indexovaných elementů v inicializátorech objektů musí inicializovat jedinečné prvky. Duplicitní index přepíše předchozí inicializaci elementu.
Jak opravit porušení
Chcete-li opravit porušení, odeberte všechny redundantní indexované inicializátory elementů, které jsou přepsány některou z následujících inicializátorů prvků. Například následující fragment kódu ukazuje porušení pravidla a několik možných oprav:
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
Oprava kódu je k dispozici pro toto pravidlo v sadě Visual Studio. Pokud ho chcete použít, umístěte kurzor na porušení a stiskněte ctrl+. (tečka). V seznamu zobrazených možností zvolte Odebrat redundantní inicializátor elementu.
Kdy potlačit upozornění
Nepotlačujte porušení tohoto pravidla.