Как вызвать Nullable.GetUnderlyingType на объекте?В чем разница между Nullable.GetUnderlyingtype и .GetType - PullRequest
0 голосов
/ 16 февраля 2012

Я хочу понять использование Nullable.GetUnderlyingType (). Когда его следует использовать?

Кроме того, в следующем примере, Как мы можем использовать GetUnderlyingType вместо GetType

    int? x = 1;
    Console.WriteLine(x.GetType().Name);

Я пытался следовать Какая польза от Nullable.GetUnderlyingType, если typeof (int?) Является ссылкой типа Int32? , но моя голова не царапалась.

1 Ответ

0 голосов
/ 22 марта 2013

Предполагая, что вы получили свойство класса с помощью отражения (назовите его vProp), должно работать следующее:

Type tNullType = Nullable.GetUnderlyingType(vProp.PropertyType);
Type tType = tNullType ?? vProp.PropertyType;

tType вернет фактический тип свойства, независимо от того, допускается ли Nullable или нет, который вы можете использовать для приведения типов или других подобных операций.

...