Подтвердить что ты не робот

Как проверить, является ли параметр типового типа допустимым?

Возможный дубликат:
Определите, является ли общий параметр нулевым типом

Я пытаюсь определить, является ли параметр типа Nullable.

    public T Get<T>(int index)
    {
        var none=default(T);
        var t = typeof(T);
        BaseVariable v = this[index].Var;
        if (T is Nullable) //compiler error
        {
            if (v == ... )
            {
                return none;
            }
        }
        //....
    }

Как мне это сделать? Я пробовал делать t == typeof(Nullable), но это всегда приводило к ложному.

То, что я хочу сделать, это время от foo.Get<bool?>(1) до нуля.

4b9b3361

Ответ 1

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

var t = typeof(T);
// ...
if (Nullable.GetUnderlyingType(t) != null)
{
    // T is a Nullable<>
}