日期:2014-05-16  浏览次数:20877 次

C# 编译错误cs0106

修饰符“modifier”对该项无效:

类或接口成员是用无效的访问修饰符标记的。 下列示例描述了一些无效的修饰符:

  • 在接口方法上不允许使用 static 和 public 修饰符。

  • 在显式接口声明上不允许使用 public 关键字。 在这种情况下,请从显式接口声明中移除 public 关键字。

  • 在显式接口声明上不允许使用 abstract 关键字,因为显式接口实现永远不能被重写。

在以前的 Visual Studio 版本中,不允许在类上使用 static 修饰符,但允许 static 类以 Microsoft Visual Studio 2005 开头。


现在说说自己的理解:

(1)接口是要被继承的,它没有方法,属性,事件,索引器的实现,所以不能实例化,因此不能static。

(2)接口成员是自动public的,因此不能在接口的声明上添加任何访问修饰符,包括public修饰符

(3)显式接口的实现的时候,因为已经指明接口是显式的,所以在指明public就是多余的