2016-09-01 82 views
-1

我通過創建它們都從中繼承的接口將兩種類型(Type1和Type2)組合到一個列表中。基於類型的調用方法

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(); 
}