我只是碰到這種怪異的行爲走到今天:意外的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