我有一段简单的代码:
object[] result = this.getData("baseLogin", args);
if (result.Count() > 0)
return result[0];
方法getData
返回对象[]
一切看起来都不错,但result[0]
给出了以下错误:
无法将类型'object'隐式转换为'object []' 存在显式转换(您是否错过了演员?)
为什么它将object []视为对象并希望将其转换为object []?
答案 0 :(得分:5)
我假设您的方法的返回类型为object[]
而不是object
:
object[] DoSomething()
{
object[] result = this.getData("baseLogin", args);
if (result.Count() > 0)
return result[0]; // <- This line returns an object. But the return type
// of the method is object[]
}
这取决于你真正需要的是什么
如果您真的只想返回第一个对象,请将方法返回类型更改为object
。如果 - 由于某种原因 - 您需要返回仅包含其中第一个元素的object[]
,请将return语句更改为:return new object[] { result[0] };
。
答案 1 :(得分:1)
如果有任何机会getData
返回数组数组,意味着结果数组中的每个项都是数组,编译器无法知道...你必须像这样明确地转换它:< / p>
if (result.Count() > 0)
return (object[])result[0];
如果该项目是其他内容,则会产生运行时错误。