写了个很简单的interface却有两个编译错误,非常不解:
namespace Learncs
{
interface B
{
public virtual void f();
}
class Program
{
static void Main(string[] args)
{
}
}
}
编译有两个错误:
error CS0106: The modifier 'public' is not valid for this item
error CS0106: The modifier 'virtual' is not valid for this item
这是什么情况呢?
------解决方案--------------------接口成员的访问级别是默认的(默认为public),所以在声明时不能再为接口成员指定除public外的任何访问修饰符,否则 编译器会报错。
接口成员不能有static、abstract、override、virtual修饰符,使用new修饰符不会报错,但会给出警告说不需要关键字new。
------解决方案--------------------interface B
{
void f();
}
------解决方案--------------------
接口成员的访问级别是默认的(默认为public),所以在声明时不能再为接口成员指定除public外的任何访问修饰符,否则 编译器会报错。
接口成员不能有static、abstract、override、virtual修饰符,使用new修饰符不会报错,但会给出警告说不需要关键字new。
可是我就是public啊,我去掉了void也不行。
interface B
{
public void f();
}
还是报错:
error CS0106: The modifier 'public' is not valid for this item
去掉的应该是public,不是void。
------解决方案--------------------
interface B
{
void f();
}