Здесь есть пара проблем.
Во-первых, поскольку double
не является ссылочным типом, его необходимо поместить в коробку, чтобы сохранить в объекте [], поэтому единственный способ получить значения - это распаковать значения в double [] (copy copy) .
Другая проблема состоит в том, что в C # массивы ковариантны, но не контравариантны, вы можете назначить массив для ссылки более производного типа, а не из менее производного типа.
string[] strings = new string[10];
object[] objects = strings; // OK, covariant
string[] strings2 = objects; // not OK, contravariant
objects[0] = 10; // Compiles fine, runtime ArrayTypeMismatchException!