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