作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
正在关注 this question ,为什么 enumerable
在这里:
Type type = typeof(List<string>);
bool enumerable = (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(IEnumerable<>));
返回false
?
由于上述方法不起作用,确定类是否实现 IEnumerable 的最佳方法是什么?
最佳答案
在这里,我可能会使用 GetListType(type)
并检查 null
:
static Type GetListType(Type type) {
foreach (Type intType in type.GetInterfaces()) {
if (intType.IsGenericType
&& intType.GetGenericTypeDefinition() == typeof(IEnumerable<>)) {
return intType.GetGenericArguments()[0];
}
}
return null;
}
关于c# - 在 List<T> 中查找 IEnumerable<T> 时,GetGenericTypeDefinition 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1908918/
鉴于我有以下类型 interface IMyInterface { } class MyClass : IMyInterface { } 为什么以下 5 行不会产生相同的结果? var type1 =
我有一段代码,需要在我的存储库保存时检查实体。我在保存时有一个 NHibernate 拦截器来检查这一点,但是当我调用 GetGenericTypeDefinition 函数时,代码失败并出现错误:
正在关注 this question ,为什么 enumerable 在这里: Type type = typeof(List); bool enumerable = (type.IsGenericT
我是一名优秀的程序员,十分优秀!