コンパイラ エラー CS0191

プロパティまたはインデクサー 'name' は読み取り専用なので、割り当てることはできません

readonly フィールドでは、コンストラクターまたは宣言時の割り当てだけを行うことができます。 詳細については、「コンストラクター」を参照してください。

readonly フィールドが static であり、コンストラクターが staticとしてマークされていない場合にも、CS0191 が発生します。

次の例では CS0191 が生成されます。

// CS0191.cs  
class MyClass  
{  
    public readonly int TestInt = 6;  // OK to assign to readonly field in declaration  
  
    MyClass()  
    {  
        TestInt = 11; // OK to assign to readonly field in constructor  
    }  
  
    public void TestReadOnly()  
    {  
        TestInt = 19;                  // CS0191  
    }  
  
    public static void Main()  
    {  
    }  
}