2016-09-01 13 views
-1

2つのタイプ(タイプ1とタイプ2)を1つのリストに結合しました。両方のタイプを継承したインターフェースを作成します。タイプに基づく呼び出しメソッド

List<IMyinterface> allElementsList = new List<IMyinterface>(); 

私は今allElementsListループスルー、およびタイプ(タイプ1またはタイプ2)に応じて、何かをしたいと思います。

私はこのような私のコードを設定している:

public interface IMyInterface 
{ 
    void DoSomething(); 
} 

public class Type1 : IMyinterface 
{ 
    void DoSomething(); 
}  
public class Type2 : IMyinterface 
{ 
    void DoSomething(); 
} 

私はちょうどこのような何かを考えていた、そしてそれは種類に応じて、正しいDoSomthing()メソッドを呼び出します。

foreach(var i in allElementsList) 
{ 
    DoSomething(); 
} 

上記のループでは正しい方法が呼び出されていません。タイプに基づいて正しいメソッドを呼び出すにはどうすればよいですか?

+7

'i.DoSomething()'? – BlackBear

+2

「*しかしこれは動かない*」は、問題文ではありません。 – Amit

答えて

0
foreach(var i in allElementsList) 
{ 
    i.DoSomething(); 
} 
関連する問題