Для Type
в C # есть свойство IsClass
, но как определить, Type
является структурой?
Хотя IsValueType
является необходимым условием, этого явно недостаточно. Для int
это также тип значения.
Кто-то предлагает следующий код:
bool IsStruct = type.IsValueType && !type.IsEnum && !type.IsPrimitive;
Но я не уверен, является ли это точным методом. Формула должна указывать разницу между структурой и другими типами, такими как DateTime
, int
и array
s.
Как отметили некоторые друзья, здесь я имею в виду определяемую пользователем структуру, а не предопределенные типы , такие как DateTime
.