次の方法で共有


コンパイラ エラー CS0546

更新 : 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
   }
}