英語で読む

次の方法で共有


コンパイラ エラー CS0546

'accessor': 'property' に、オーバーライド可能な set アクセサーがないため、オーバーライドできません。

アクセサーをオーバーライドできないために、プロパティのアクセサー メソッドのオーバーライドに失敗しました。 このエラーは、次の場合に発生する可能性があります。

  • 基底クラス プロパティが virtualとして宣言されていません。

  • 基底クラスのプロパティが、オーバーライドする get または set アクセサーを宣言していません。

基底クラス プロパティをオーバーライドしない場合、派生クラスでプロパティの前に new キーワードを使用することができます。

詳細については、「 Using Properties」を参照してください。

次の例では、基底クラスでプロパティの set アクセサーが宣言されていないため、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  
   }  
}  

関連項目