英語で読む

次の方法で共有


コンパイラ エラー CS1914

静的フィールド 'name' をオブジェクト初期化子に割り当てることはできません。

定義上、オブジェクト初期化子は、クラスのオブジェクトつまりインスタンスを初期化します。 型の static フィールドの初期化には使用できません。 クラスのインスタンスがいくつ作成されても、 static フィールドのコピーは 1 つだけです。

このエラーを解決するには

  1. フィールドを型のインスタンス フィールドに変更するか、オブジェクト初期化子から初期化しないようにします。

次のコードでは、 TestClass.Number である staticフィールドを初期化子が初期化しようとするため、CS1914 が生成されます。

// cs1914.cs  
using System.Linq;  
public class TestClass  
{  
    public string Message { get; set; }  
    public static int Number { get; set; }
}  
class Test  
{  
    static void Main()  
    {  
        TestClass b = new TestClass() { Message = "Hello", Number = "555-1212" }; // CS1914  
  
    }  
}