コンパイラ エラー CS0200
プロパティまたはインデクサー 'property' は読み取り専用なので、割り当てることはできません
プロパティに値を割り当てようとしましたが、プロパティに set アクセサーがないか、または割り当てがコンストラクターの外側でした。 set アクセサーを追加してエラーを解決します。 詳細については、「読み取り/書き込みのプロパティを宣言および使用する方法」を参照してください。
例
次の例では CS0200 が生成されます。
// CS0200.cs
public class Example
{
private int _mi;
int I
{
get
{
return _mi;
}
// uncomment the set accessor and declaration for _mi
/*
set
{
_mi = value;
}
*/
}
public static void Main()
{
Example example = new Example();
example.I = 9; // CS0200
}
}
次の例では、自動実装プロパティとオブジェクト初期化子が使用されており、引き続き CS0200 が生成されます。
// CS0200.cs
public class Example
{
int I
{
get;
// uncomment the set accessor and declaration
//set;
}
public static void Main()
{
var example = new Example
{
I = 9 // CS0200
};
}
}
読み取り専用のプロパティまたはインデクサー "property" に割り当てるには、set アクセサーを追加するか、オブジェクトのコンストラクターで値を割り当てます。
public class Example
{
int I { get; }
public Example()
{
I = -7;
}
}