C♯相談室 Part26
■ このスレッドは過去ログ倉庫に格納されています
0772デフォルトの名無しさん
2005/10/30(日) 19:43:55>elem.Draw()と書いたのと同じ動作をしてほしいんです。
>つまりelemがElemAのインスタンスならElemA.Drawが呼び出される。
普通にやれば良い。何も問題は無い。
=====
using System;
class Element { public virtual void Draw() { Console.WriteLine("Element::Draw"); } }
class ElemA: Element { public override void Draw() { Console.WriteLine("ElemA::Draw"); } }
class ElemB: Element { public override void Draw() { Console.WriteLine("ElemB::Draw"); } }
delegate void DrawDelegate();
class Test {
[STAThread]
public static void Main(string[] args) {
DrawDelegate d1 = new DrawDelegate(new Element().Draw);
DrawDelegate d2 = new DrawDelegate(new ElemA().Draw);
DrawDelegate d3 = new DrawDelegate(new ElemB().Draw);
d1(); // Element::Draw が表示される
d2(); // ElemA::Draw が表示される
d3(); // ElemB::Draw が表示される
}
}
■ このスレッドは過去ログ倉庫に格納されています