我有:
-接口:IMyType
-一些实现它的类:MyType1,MyType2,MyType3
如何定义IMyType类型的列表?
var myList = new List<Type> {typeof (MyType1), typeof (MyType2)};
上面的列表并不强制类型为IMyType类型,我可以在列表中添加任何类型
最佳答案
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
关于c# - 定义特定类型的列表(不是对象),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8223073/