Чтобы получить значение по умолчанию из Type
, просто вызовите Activator.CreateInstance
object obj = Activator.CreateInstance(theType);
Что касается получения сильного типа, проблема в том, что когда вы используете отражение таким образом,это имеет дело с объектами.Чтобы получить сильный тип, вам нужно знать его во время компиляции, который побеждает вашу цель.Когда вы делаете эти вещи во время выполнения, у вас остается object
или dynamic
(что просто object
за кадром).
Помимо этого, если вы говорите о бегемассив через метод и возвращая значения по умолчанию для каждого типа, вы будете говорить о возвращении массива IEnumerable<object>
или object[]
, так как тип каждого элемента, очевидно, будет отличаться.