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 и немного отразить, чтобы заполнить поля.
Есть ли простой и простой способ сказать, следует ли мне использовать метод (a) или метод (b)? Эта логика будет использоваться внутри общего метода с T как аргументом типа.