Erro do Compilador CS0122
'member' está inacessível em razão de seu nível de proteção
O modificador de acesso de um membro de classe impede o acesso ao membro. Para obter mais informações, consulte Modificadores de Acesso.
Os métodos de extensão não podem acessar membros privados do tipo que estão estendendo.
Uma causa disso (não mostrada no exemplo abaixo) pode ser a ausência do sinalizador de compilador /out no destino de um assembly amigável. Para obter mais informações, confira Friend Assemblies e OutputAssembly (opções do compilador C#).
Exemplo
O exemplo a seguir gera o erro CS0122:
// CS0122.cs
public class MyClass
{
private int data;
void PrivateMethod() {}
public void PublicMethod() {}
}
public static class MyClassExtensions
{
public static int GetData(this MyClass myClass)
{
return myClass.data; // CS0122
}
}
public class Program
{
public static void Main()
{
MyClass a = new MyClass();
a.PrivateMethod(); // CS0122
a.PublicMethod(); // OK
}
}
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de