Разница между компилятором Mono C# и компилятором MS C# в отношении области действия

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

7
задан imgen 14 May 2012 в 05:32
поделиться