public abstract class MyBase
{
public abstract bool MyProperty
{
get;
protected set;
}
}
public class MyClass : MyBase
{
public MyClass()
{
this.MyProperty = true;
}
public override bool MyProperty
{
get;
protected set;
}
}
コンストラクター MyClass() により、CA2214 が発生します。
コンストラクターでオーバーライド可能なメソッドを呼び出さないでください。
これは通常、コンストラクターと同じクラスで定義された仮想メソッドを呼び出した場合にのみ表示されます。例:のコンストラクターMyProperty
内へのアクセス。ここでは、派生クラスのコンストラクター内で、継承された抽象プロパティの非仮想オーバーライド実装MyBase
を呼び出しています。