更新 : 2007 年 11 月
エラー メッセージ
'accessor' : 'property' に、オーバーライド可能な set アクセサがないため、オーバーライドできません。
アクセサをオーバーライドできないため、プロパティのアクセサ メソッドのオーバーライドに失敗しました。このエラーは以下の方法で解決できます。
基本クラスで set アクセサを追加する。
派生クラスから set アクセサを削除する。
派生クラスのプロパティで new キーワードを追加することにより、基本クラスのプロパティを隠ぺいする。
基本クラスのプロパティを virtual にする。
詳細については、「プロパティの使用 (C# プログラミング ガイド)」を参照してください。
使用例
次の例では CS0546 エラーが生成されます。
// CS0546.cs
// compile with: /target:library
public class a
{
public virtual int i
{
get
{
return 0;
}
}
public virtual int i2
{
get
{
return 0;
}
set {}
}
}
public class b : a
{
public override int i
{
set {} // CS0546 error no set
}
public override int i2
{
set {} // OK
}
}