关于 C# 中实例方法/属性范围的差异,我在这里遇到了一个极端情况。这是代码:
public class Base
{
public EventHandler Click {get;set;}
public Base(EventHandler clickHandler)
{
this.Click = clickHandler;
}
}
public class Derived: Base
{
public Derived(): base((sender, e) => Execute())
{
}
private void Execute()
{
}
}
代码在 MonoDevelop 3.0 上编译得很好,但在 VS2010 中给出了一个错误:非静态字段、方法或属性“Base.Execute”需要对象引用基本上,归结为调用基类的派生类的构造函数的构造函数,MS的C#编译器不允许访问派生类的方法/属性等。怎么会呢?