有没有办法在不知道返回类型的情况下分配var查询。我想将var初始化为null,然后执行两种不同类型的查询中的任何一种,这些查询返回不同的自定义对象,而不事先知道哪一个。所以我只在方法中初始化一个查询。
我得到的错误是"无法分配给隐式类型的本地变量" 。我试图查找以前的问题和答案,但不明白为什么var不能被指定为null。是不是应该稍后将其分配给收到的对象?有没有办法使用更通用的上层对象类,可以在不知道返回类型的情况下处理这个?
var query = null;
if (condition) {
query = /* something */
}
else
{
query = /* something else */
}
答案 0 :(得分:2)
var
不能被赋值为null,因为null
中没有类型信息告诉编译器它是什么类型的null。 var
是编译时的事情 - 它需要在编译时具有已知类型;只是编译器可以根据你分配的内容来计算出类型。