コンパイラ エラー CS1917

更新 : 2007 年 11 月

エラー メッセージ

型 'struct name' の読み取り専用フィールド 'name' のメンバは、値の型であるため、オブジェクト初期化子と共に割り当てることはできません。

値型の読み取り専用フィールドは、コンストラクタでしか割り当てできません。

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

  • 構造体をクラス型に変更します。

  • コンストラクタを使用して構造体を初期化します。

使用例

次のコードは CS1917 を生成します。

// cs1917.cs
class CS1917
{
    public struct TestStruct
    {
        public int i;
    }
    public class C
    {
        public readonly TestStruct str = new TestStruct();
        public static int Main()
        {
            C c = new C { str = { i = 1 } }; // CS1917
            return 0;
        }
    }
}