CA2244:請勿複製索引元素初始化

屬性
規則識別碼 CA2244
標題 請勿複製索引元素初始化
類別 使用方式
修正程式是中斷或非中斷 不中斷
預設在 .NET 8 中啟用 建議

原因

物件初始設定式有多個具有相同常數索引的索引項目初始設定式。 除了最後一個初始設定式,其他全都是不必要的。

檔案描述

物件初始化運算式 可讓您在建立時將值指派給物件的任何可存取欄位或屬性,而不需要叫用建構函式,後面接著幾行指派語句。

物件初始化運算式中的索引項目目初始化運算式必須初始化唯一元素。 重複的索引會覆寫先前的專案初始化。

如何修正違規

若要修正違規,請移除任何後續元素初始化運算式覆寫的所有備援索引元素初始化運算式。 例如,下列程式碼片段會顯示違反規則和幾個可能的修正:

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

提示

Visual Studio 中有一個程式碼修正程式碼可供此規則使用。 若要使用它,請將游標放在違規上,然後按 Ctrl + 。 (句號)。 從所呈現的選項清單中,選擇 [移除備援專案初始化運算式 ]。

Code fix for CA2244 - Remove redundant element initializer

隱藏警告的時機

請勿隱藏此規則的違規。

另請參閱