Sdílet prostřednictvím


Chyba kompilátoru CS0507

'function1' : nelze změnit modifikátory přístupu při přepsání zděděného člena 'function2'

Došlo k pokusu o změnu specifikace přístupu v přepsání metody.

Příklad 1

Následující ukázka vygeneruje CS0507.

// CS0507.cs  
abstract public class clx  
{  
   virtual protected void f() {}  
}  
  
public class cly : clx  
{  
   public override void f() {}   // CS0507  
   public static void Main() {}  
}  

Příklad 2

CS0507 může dojít také v případě, že se třída pokusí přepsat metodu označenou jako protected internal definovanou v odkazovaných metadatech. V této situaci by měla být metoda přepsání označena jako protected.

// CS0507_b.cs  
// compile with: /target:library  
abstract public class clx  
{  
   virtual protected internal void f() {}  
}  

Následující ukázka vygeneruje CS0507.

// CS0507_c.cs  
// compile with: /reference:cs0507_b.dll  
public class cly : clx  
{  
   protected internal override void f() {}   // CS0507  
   // try the following line instead  
   // protected override void f() {}   // OK  
  
   public static void Main() {}  
}