Как создать экземпляр и назначить значение по умолчанию на основе параметра типа? - PullRequest
2 голосов
/ 08 октября 2011

У меня есть массив Type объектов, соответствующих int, bool, string, float, int? ...

Как мне написать функцию, которая принимает вышеуказанный массив и возвращает строго типизированные значения по умолчанию для каждого типа в массиве?

1 Ответ

5 голосов
/ 08 октября 2011

Чтобы получить значение по умолчанию из Type, просто вызовите Activator.CreateInstance

object obj = Activator.CreateInstance(theType);

Что касается получения сильного типа, проблема в том, что когда вы используете отражение таким образом,это имеет дело с объектами.Чтобы получить сильный тип, вам нужно знать его во время компиляции, который побеждает вашу цель.Когда вы делаете эти вещи во время выполнения, у вас остается object или dynamic (что просто object за кадром).

Помимо этого, если вы говорите о бегемассив через метод и возвращая значения по умолчанию для каждого типа, вы будете говорить о возвращении массива IEnumerable<object> или object[], так как тип каждого элемента, очевидно, будет отличаться.

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