Ну, похоже, что вы можете пытаться обнаружить разницу между типом значения и ссылочным типом. Вы можете найти это с помощью Type.IsValueType
... но имейте в виду, что типы значений также могут легко иметь свойства. (Например, подумайте о DateTime
.) Кроме того, некоторые типы, которые вы можете рассматривать как «не объекты», являются ссылочными типами - string
, являющимся ярким примером.
Другим вариантом было бы использовать Type.IsPrimitive
- , что что вы ищете? Если это так, вы должны знать, что decimal
, DateTime
и string
являются не примитивными типами.
Если вы можете точно описать что делает тип «объектом» в вашем образе мышления (точнее, каким бы то ни было образом делает семантическую разницу в том, что вы пытаетесь сделать с вашим типом). Я подозреваю, что у вас в настоящее время нет очень четкого набора критериев. Придумывание этих критериев может также прояснить другие аспекты вашей текущей задачи.