Как определить, является ли Тип пользовательской структурой?

Для a Type, существует свойство IsClass, но как знать a Type структура?

Извините, я должен добавить еще некоторую информацию.

  1. Я использую C#.
  2. Хотя IsValueType необходимое условие, это, достаточно очевидно. Поскольку Целое число является типом значения также.
7
задан nawfal 19 April 2013 в 22:10
поделиться

6 ответов

Если это тип значения (например, struct ), используйте Type.IsValueType .

1
ответ дан 6 December 2019 в 15:21
поделиться

Если вы говорите о c#, вы можете использовать свойство IsValueType.

3
ответ дан 6 December 2019 в 15:21
поделиться

Вы можете использовать IsValueType.

1
ответ дан 6 December 2019 в 15:21
поделиться

Что ж, я полагаю, что для вашего требования это близко:

bool isStruct = myType.IsValueType && !myType.IsPrimitive;

, но все же, например, DateTime этим не покрывается. Возможно, вам придется добавить дополнительные типы, которые вы хотите исключить вручную.

0
ответ дан 6 December 2019 в 15:21
поделиться

используйте это:

 x.GetType().IsValueType();

Из справки:

Свойство Type :: IsValueType Получает значение, указывающее, является ли Тип значением type. Типы значений - это типы, представленные как последовательности битов; типы значений не являются классами или интерфейсами. В некоторых языках программирования типы значений называются «структурами». Перечисления - это особый случай типов значений.

-1
ответ дан 6 December 2019 в 15:21
поделиться
t.IsValueType && !t.IsPrimitive && !t.IsEnum;
10
ответ дан 6 December 2019 в 15:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: