Erro do Compilador CS0507
'function1': não é possível alterar modificadores de acesso ao substituir 'access' membro herdado 'function2'
Houve uma tentativa de alterar a especificação de acesso em uma substituição de método.
Exemplo 1
O exemplo a seguir gera o erro CS0507.
// CS0507.cs
abstract public class clx
{
virtual protected void f() {}
}
public class cly : clx
{
public override void f() {} // CS0507
public static void Main() {}
}
Exemplo 2
O erro CS0507 também poderá ocorrer se uma classe tentar substituir um método marcado como protected internal
, conforme definido nos metadados referenciados. Nessa situação, o método de substituição deve ser marcado como protected
.
// CS0507_b.cs
// compile with: /target:library
abstract public class clx
{
virtual protected internal void f() {}
}
O exemplo a seguir gera o erro 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 conosco no GitHub
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.