基于类型的调用方法

时间:2016-09-01 18:17:08

标签: c# interface

我已经将两种类型(Type1和Type2)组合成一个列表,通过创建它们都继承的接口。

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

我现在想循环遍历allElementsList,并根据Type(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();
}

上面的循环没有调用正确的方法。如何根据类型调用正确的方法?

1 个答案:

答案 0 :(得分:0)

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