编译器错误 CS0106
修饰符“modifier”对该项无效
类或接口的成员标记有无效的访问修饰符。 下面的示例介绍其中某些无效的修饰符:
本地函数中不允许使用静态修饰符。 从 C# 8.0 开始支持静态本地函数功能。 尝试使用此功能时,不支持 C# 8.0 的编译器会生成 CS0106。 但是,支持 C# 8.0 但将语言版本设置为 C# 8.0 及更低版本的编译器将生成一个诊断,该诊断建议使用 C# 8.0 或更高版本。
显式接口声明上不允许使用
public
关键字。 在这种情况下,从显式接口声明删除public
关键字。显式接口声明上不允许具有抽象关键字,因为永远不能重写显式接口实现。
本地函数中不允许出现访问修饰符。 本地函数始终为私有函数。
在 Visual Studio 的先前版本中,类上不允许具有 static
修饰符,但允许具有以 Visual Studio 2005 开头的 static
类。
有关详细信息,请参阅接口。
示例
下面的示例生成 CS0106:
// CS0106.cs
namespace MyNamespace
{
interface I
{
void M();
}
public class MyClass : I
{
public void I.M() {} // CS0106
public static void Main() {}
}
}