我有:
-接口: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/

10-15 01:35