Вопрос очень запутанный.Является ли myObject объектом, который может быть обнуляемым int?Или свойство id может иметь тип nullable int?
Если первое, на ваш вопрос нельзя ответить, поскольку оно предполагает ложь.Там нет такого понятия, как упакованный в Nullable Int.Я отмечаю, что все ответы, которые предлагают if (myobject.GetType() == typeof(int?))
, являются поэтому неправильными;условие никогда не будет истинным.
Когда вы преобразуете обнуляемое int в объект, оно либо становится нулевой ссылкой (если у обнуляемого int нет значения), либо оно становится упакованным int.Невозможно определить, содержит ли объект обнуляемое значение типа int, потому что объект никогда не содержит значения типа NULL.
Если последнее, сравните тип свойства с typeof(int?)
.Вы не можете использовать переключатель;только константы могут использоваться для случаев переключения, а типы не являются константами.
Все это говорит о том, что это плохой запах кода.Почему вы используете отражение в первую очередь?