IEnumerable<MethodBase> methods = from p in defaultMembers.OfType<PropertyInfo>()
select p.GetGetMethod() into m
where m != null
select m
错误 :
无法将类型“System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo>”隐式转换为“System.Collections.Generic.IEnumerable<System.Reflection.MethodBase>”。存在一个显式转换(是否缺少强制转换?)
类型转换一下
(from p in ......
select m).Cast<MethodBase>();
谢谢,就是我要的结果。
用下面的代码试试
var methods = from p in defaultMembers.OfType<PropertyInfo>()
select p.GetGetMethod() into m
where m != null
select m
可以用 var 来声明 返回的结果集对象,
也可以强制转换一次在后面
不是 m!=null 判断为空的错误,而是类型转换的错误
IEnumerable<MethodBase> methods =... 和你最终返回的m的类型不匹配,p.GetGetMethod() 这个方法获取的对象你需要做类型转化,不过不能转换,则换一种,把MethodBase类型.换成和m相同的,再做遍历
你可以试试:
IEnumerable<MethodInfo> methods = from p in defaultMembers.OfType<PropertyInfo>() select p.GetGetMethod() into m where m != null select m
错误是由于类型不匹配造成的。
楼上的方法对,但我要的是返回MethodBase,谢谢
@fredxiong: 哈哈,类型转换即可。