共用方式為


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

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

原因

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

檔案描述

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

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

如何修正違規

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

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+。(句號)。 從所呈現的選項清單中,選擇 [移除備援專案初始化表達式 ]。

CA2244 的程式代碼修正 - 移除備援專案初始化表達式

隱藏警告的時機

請勿隱藏此規則的違規。

另請參閱