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() {}
}
Spolupracujte s námi na GitHubu
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.