我有三个类(动物、哺乳动物和爬行动物),其中哺乳动物和爬行动物是动物的子类。
我有一个动物列表,上面只有哺乳动物或爬行动物。我想在运行时获取列表中的类型。
使用列表本身是行不通的。
Type type = myList.GetType().GetProperty("Item").PropertyType;
// type -> Animal
Type type = myList.GetType().GetGenericArguments()[0];
// type -> Animal这个列表也是另一个类的属性,让我们称之为Biome。Biome有两个属性,爬行动物(列表)和哺乳动物(列表)。给定一个实例集合属性,我能找到项目类型吗?
发布于 2011-07-09 06:31:12
获取列表中项目的类型,而不是列表的类型:
Type type = myList[0].GetType();发布于 2011-07-09 07:06:02
如果您使用的是.NET 4.0,并且在创建列表时知道元素的类型,则可以按如下方式应用Generic Covariance:
List<Animal> myList = new List<Reptile>();这将使用反射生成适当的输出。
https://stackoverflow.com/questions/6631230
复制相似问题