Error del compilador CS0507
'function1' : no se pueden cambiar los modificadores de acceso al invalidar el miembro heredado 'access' de acceso 'function2'
Se realizó un intento de cambiar la especificación de acceso en un reemplazo de método.
Ejemplo 1
En el ejemplo siguiente se genera la advertencia CS0507.
// CS0507.cs
abstract public class clx
{
virtual protected void f() {}
}
public class cly : clx
{
public override void f() {} // CS0507
public static void Main() {}
}
Ejemplo 2
El error CS0507 también puede aparecer si una clase intenta reemplazar un método marcado como protected internal
definido en metadatos a los que se hace referencia. En esta situación, el método que reemplaza se debería marcar como protected
.
// CS0507_b.cs
// compile with: /target:library
abstract public class clx
{
virtual protected internal void f() {}
}
En el ejemplo siguiente se genera la advertencia 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() {}
}
Colaborar con nosotros en GitHub
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.