为什么编译器不允许将int分配给对象?为IQueryable分配IQueryable <int>时编译出错<object>
IQueryable<object> objects = null;
IQueryable<int> ints = null;
objects = ints;
为什么编译器不允许将int分配给对象?为IQueryable分配IQueryable <int>时编译出错<object>
IQueryable<object> objects = null;
IQueryable<int> ints = null;
objects = ints;
隐式类型转换(协方差函数)不适用于所有泛型。 SomeGeneric <的ValueType >不从到SomeGeneric <参考>获得,因此,即使有一个已经为类型参数的隐式转换(在此情况下,拳击)它是无效的投放。
如果你在C#4.0,通用接口可以使用ISomeGeneric <定义为协变出Ť>和提供的通用参数是衍生彼此,然后就可以铸造。如果泛型参数不是派生的,则不可能投射。
您可以将其转换为'IQueryable'(OR)在分配前将其转换为'IQueryable
你的项目的目标框架是什么?是否有.NET Framework 3.5或更高版本? – elgonzo
@elgonzo,我使用.Net框架4.5.1 – Albert