Как мне узнать, является ли тип «простым» типом? т.е. содержит единственное значение

typeof(string).IsPrimitive == false
typeof(int).IsPrimitive == true
typeof(MyClass).IsClass == true
typeof(string).IsClass == true
typeof(string).IsByRef == false
typeof(MyClass).IsByRef == true // correction: should be false (see comments below)

У меня есть метод, который создает новый экземпляр T и, если это «сложный» класс, заполняет его свойства из набора значений исходных данных.

(a) Если T - простой тип (например, строка или int или что-либо подобное), должно быть выполнено быстрое преобразование из исходных данных в T.

(b) Если T - это класс (но не что-то простое, например строка), тогда я буду использовать Activator.CreateInstance и немного поразмышляю, чтобы заполнить поля.

Есть ли быстрый и простой способ определить, следует ли мне использовать метод (а) или метод (б)? Эта логика будет использоваться внутри универсального метода с T в качестве аргумента типа.

Ответы на вопрос(7)

Ваш ответ на вопрос