Итак, я выполняю много работы с базой данных в приложении - и есть несколько возможных возвращаемых значений моей системы кэширования . Он может возвращать null, он может возвращать значение по умолчанию (тип) или он может возвращать недопустимый объект (недопустимый объект, я имею в виду объект с неправильными свойствами / значениями). Я хочу создать метод расширения, чтобы выполнять все эти проверки за меня, например:
public static bool Valid<T> (this T obj) where T: class
{
if (obj == null)
return false;
else if (obj == default(T))
return false;
//Other class checks here
else
return true;
}
Проблема в том, что мой компилятор сообщает мне, что if (obj == default (T))
всегда будет ложный.
Почему?