我有: - 界面:IMyType - 实现它的一些类:MyType1,MyType2,MyType3
如何定义IMyType类型列表?
var myList = new List<Type> {typeof (MyType1), typeof (MyType2)};
上面的列表并不强制类型为IMyType类型,我可以在列表中添加任何类型
答案 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