Доступ к индексу object [x] в C # приводит к ошибке приведения объекта к объекту [] - PullRequest
0 голосов
/ 25 июля 2011

У меня есть простой кусок кода:

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

Метод getData возвращает объект [] курса.
Все выглядит хорошо, но result[0] выдает следующую ошибку:

Невозможно неявно преобразовать тип 'object' в 'object []'.
Существует явное преобразование (вам не хватает приведения?)

Почемурассматривать объект [] как объект и хочет преобразовать его в объект []?

Ответы [ 2 ]

5 голосов
/ 25 июля 2011

Я предполагаю, что тип возврата вашего метода - 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 голос
/ 25 июля 2011

Если по какой-либо случайности getData возвращает массив массивов, то есть каждый элемент в результирующем массиве сам по себе является массивом, компилятор не может этого знать ... вы должны преобразовать его явно так:

if (result.Count() > 0)
   return (object[])result[0]; 

Это даст ошибку во время выполнения в случае, если предмет является чем-то другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...