Erro do compilador CS0106
O modificador 'modificador' não é válido para este item
Uma classe ou membro da interface foi marcado com um modificador de acesso inválido. Os exemplos a seguir descrevem alguns desses modificadores inválidos:
O modificador estático não é permitido em uma função local. O recurso de função local estática é suportado a partir do C# 8.0. Um compilador que não suporta C# 8.0 produz CS0106 quando você tenta usar esse recurso. No entanto, um compilador que suporta C# 8.0, mas a versão de idioma definida é anterior ao C# 8.0 produzirá um diagnóstico sugerindo que você use C# 8.0 ou posterior.
A
public
palavra-chave não é permitida em uma declaração de interface explícita. Nesse caso, remova apublic
palavra-chave da declaração explícita da interface.A palavra-chave abstrata não é permitida em uma declaração de interface explícita porque uma implementação de interface explícita nunca pode ser substituída.
Modificadores de acesso não são permitidos em uma função local. As funções locais são sempre privadas.
A palavra-chave readonly não é permitida em métodos em um tipo de classe, com exceção de
ref readonly
returns (readonly
keyword must appear after theref
keyword).
Em versões anteriores do Visual Studio, o static
modificador não era permitido em uma classe, mas static
as classes são permitidas a partir do Visual Studio 2005.
Para obter mais informações, consulte Interfaces.
Exemplo
O exemplo a seguir gera CS0106:
// CS0106.cs
namespace MyNamespace
{
interface I
{
void M1();
void M2();
}
public class MyClass : I
{
public readonly int Prop1 { get; set; } // CS0106
public int Prop2 { get; readonly set; } // CS0106
public void I.M1() {} // CS0106
abstract void I.M2() {} // CS0106
public void AccessModifierOnLocalFunction()
{
public void LocalFunction() {} // CS0106
}
public readonly void ReadonlyMethod() {} // CS0106
// Move the `readonly` keyword after the `ref` keyword
public readonly ref int ReadonlyBeforeRef(ref int reference) // CS0106
{
return ref reference;
}
public static void Main() {}
}
public readonly class ReadonlyClass {} // CS0106
}