ここでは、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# コンパイラーは、派生クラスのメソッド/プロパティなどへのアクセスを許可しません。