スイッチなしでこの 3 つのクラスのいずれかを制御するために、一度に 1 つのオブジェクトを処理する効率的な方法を知る必要があります。(任意の時点でのオブジェクトの種類を知る)
注 : メソッド AddVertex はオーバーロードされていないため、親クラスと共通です。
switch (User.Action)
{
case Actions.NewVertex:
switch (GraphsType)
{
case GraphsType.None:
Graph.AddVertex(p); /*This is the parent class*/
break;
case GraphsType.UndirectedGraph:
UndirectedGraph.AddVertex(p); /*This is a derived class*/
break;
case GraphsType.DirectedGraph:
DirectedGraph.AddVertex(p); /*This is a derived class,*/
break;
}
}