我只是碰到这种怪异的行为走到今天:意外的C#接口实现的编译器错误
interface IFooBar
{
void Foo();
void Bar();
}
class FooBar : IFooBar
{
void IFooBar.Foo()
{
}
void IFooBar.Bar()
{
this.Foo();
}
}
线this.Foo();引发编译器错误
“MyProject.FooBar”不包含一个 定义为“富”和没有扩展 方法“富”接受型的第一 参数“MyProject.FooBar” 可以发现( ?您使用的指令或程序集 参考缺少 )
如果让我选择的公共方法,而不是interface.method声明风格,代码编译:
class FooBarOk : IFooBar
{
public void Foo()
{
}
public void Bar()
{
this.Foo();
}
}
我想明白为什么会引发错误,以及如何利用周围的interface.method符号
谢谢你的链接和魔术句:“当一个成员被明确实现时,它不能通过类实例访问,而只能通过接口的一个实例。” – devio 2010-09-16 16:45:28