2016-09-01 3 views
-1

Я объединил два типа (Type1 и Type2) в один список, создав интерфейс, на который они оба наследуются.Метод вызова, основанный на типе

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

теперь я хотел бы Переберите allElementsList, и в зависимости от типа (Type1 или Type2), сделать что-то.

Я настроил свой код так:

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(); 
} 
Смежные вопросы