申し訳ありませんが、これが愚かな質問である場合、または既に質問されている場合は、C#のメソッドは、別のメソッドをオーバーライドして同時に仮想化できますか?
画像を、このシナリオ:
public class Bottom
{
virtual public void foo()
{
doTheThing();
}
}
public class Middle : Bottom
{
virtual override public void foo() //this function will both override the parent's foo() and letting its child's foo() be over ridden
{
base.foo();
doTheOtherThing();
}
}
public class Top : Middle
{
override public void foo()
{
base.foo();
doTheFinalThing();
}
}
と真ん中の1になるので、ここで...私の周りグーグルで試したと私は今、この権利をテストすることができるようにする位置には本当にないんだけどコメントは、私が求めているものです。
これは問題ありませんか?それは従来のものですか?正しい順序でキーワードが表示されていますか?それは問題ですか?これを行う最も正しい方法は何ですか?
バーチャルな方法は、バーチャルな方法ですが、そのために何もする必要はありません。だから、単に中間のバージョンから "仮想"キーワードを削除してください。 – Evk
質問をする前に、興味のあるコードをコンパイルしてみてください。あなたのコードは現在、コンパイル時にエラーが出るでしょう。 –
[documentation](https://msdn.microsoft.com/en-us/library/ebca9ah3.aspx)をチェックしてください: "オーバーライドメソッドを変更するために新しい、静的、または仮想修飾子を使用することはできません。オーバーライドされたプロパティは、仮想、抽象、またはオーバーライドでなければなりません。 –