У меня есть следующая функция:
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);