将var指定为null以进行两个不同的查询

时间:2015-07-02 14:33:51

标签: c#

有没有办法在不知道返回类型的情况下分配var查询。我想将var初始化为null,然后执行两种不同类型的查询中的任何一种,这些查询返回不同的自定义对象,而不事先知道哪一个。所以我只在方法中初始化一个查询。

我得到的错误是"无法分配给隐式类型的本地变量" 。我试图查找以前的问题和答案,但不明白为什么var不能被指定为null。是不是应该稍后将其分配给收到的对象?有没有办法使用更通用的上层对象类,可以在不知道返回类型的情况下处理这个?

var query = null;
if (condition) {
    query = /* something */
} 
else 
{
    query = /* something else */
}

1 个答案:

答案 0 :(得分:2)

var不能被赋值为null,因为null中没有类型信息告诉编译器它是什么类型的null。 var是编译时的事情 - 它需要在编译时具有已知类型;只是编译器可以根据你分配的内容来计算出类型。