Nullable типы и универсальная проверка на Null

Допустим, я хочу сделать универсальный метод IsNullOrEmpty, который на вход может принять тип T.

Возникла проблема с проверкой Nullable типа на то имеет ли он значение или нет.

Т.е вот я узнал, что передомною Nullable, но

if (T is Nullable<T> nullable)

не работает и ругается, что так делать нельзя...

Как я могу сделать задуманное и удостовериться, что HasValue возвращает true или false?


Ответы (1 шт):

Автор решения: PashaPash

Самый простой рабочий вариант - обычная проверка на null:

static bool IsNull<T>(T val)
{
    return val == null;
}

Console.WriteLine(IsNull((int?)null)); // True
Console.WriteLine(IsNull(5));          // False
→ Ссылка