在C#中访问object [x] index会将cast对象赋予object []错误

Joe*_*Joe -1 c# arrays object

我有一段简单的代码:

object[] result = this.getData("baseLogin", args);
if (result.Count() > 0)
   return result[0]; 
Run Code Online (Sandbox Code Playgroud)

方法getData返回object [] ofcourse.
一切看起来都很好但是出现result[0]以下错误:

无法将类型'object'隐式转换为'object []'.
存在显式转换(您是否错过了演员?)

为什么它将object []视为对象并想将其转换为object []?

Dan*_*rth 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[]
}
Run Code Online (Sandbox Code Playgroud)

这取决于你真正需要什么.
如果您真的只想返回第一个对象,请将方法返回类型更改为object.如果-因某种原因-你需要返回一个object[]只有在它的第一个元素,改变return语句如下:return new object[] { result[0] };.