Здесь я столкнулся с крайним случаем, касающимся разницы в области действия методов/свойств экземпляра в 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# не разрешает доступ к методам/свойствам производного класса и т.д. Как так?