Почему приведение динамического объекта типа к объекту вызывает исключение нулевой ссылки?

У меня есть следующая функция:

public static T TryGetArrayValue<T>(object[] array_, int index_)
{
    ... //some checking goes up here not relevant to question

    dynamic boxed = array_[index_];
    return (T)boxed;
}

Когда я вызываю ее следующим образом,

object a = new object();
object v = TUtils.TryGetArrayValue<object>(new object[] { a }, 0);

(T) boxedгенерирует исключение нулевой ссылки.

Любой другой тип, который я добавляю, кроме "object", работает отлично.
Есть идеи, что это такое и почему это исключение?

Редактировать: Причина, по которой я использую динамическую, заключается в том, чтобы избежать исключений при преобразовании типов, например:

double a = 123;
int v = TUtils.TryGetArrayValue<int>(new object[] { a }, 0);
63
задан bedo 29 March 2012 в 19:16
поделиться