定义特定类型(不是对象)的列表

时间:2011-11-22 06:55:25

标签: c# .net oop list object

我有: - 界面:IMyType - 实现它的一些类:MyType1,MyType2,MyType3

如何定义IMyType类型列表?

var myList = new List<Type> {typeof (MyType1), typeof (MyType2)};

上面的列表并不强制类型为IMyType类型,我可以在列表中添加任何类型

2 个答案:

答案 0 :(得分:4)

简单

List<IMyType> list = new List<IMyType>();

你会不需要任何花哨的东西

答案 1 :(得分:2)

class Program
{
    static void Main(string[] args)
    {
        IList<IMyType> lst = new List<IMyType>();
        lst.Add(new MyType1());
        lst.Add(new MyType2());
        lst.Add(new MyType3());

        foreach (var lstItem in lst)
        {
            Console.WriteLine(lstItem.GetType());
        }
    }
}
public interface IMyType { }
public class MyType1 : IMyType { }
public class MyType2 : IMyType { }
public class MyType3 : IMyType { }

如果你想确定什么是实现类,你可以使用 obj.GetType()或者运算符 obj是MyType1