Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS0546

"accessor" : nie można zastąpić, ponieważ właściwość nie ma przesłonięć zestawu dostępu

Próba zastąpienia jednej z metod dostępu dla właściwości nie powiodła się, ponieważ nie można zastąpić metody dostępu. Ten błąd może wystąpić, jeśli:

  • właściwość klasy bazowej nie jest zadeklarowana jako wirtualna.

  • właściwość klasy bazowej nie deklaruje metody pobieranialub ustawiania metody dostępu, którą próbujesz przesłonić.

Jeśli nie chcesz zastąpić właściwości klasy bazowej, możesz użyć nowego słowa kluczowego przed właściwością w klasie pochodnej.

Aby uzyskać więcej informacji, zobacz Using Properties (Używanie właściwości).

Przykład

Poniższy przykład generuje CS0546, ponieważ klasa bazowa nie deklaruje zestawu dostępu dla właściwości .

// 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  
   }  
}  

Zobacz też