Не компилируется следующее:
public void MyMethod<T>(T value)
{
if (value == default(T))
{
// do stuff
}
}
Ошибка: Operator '==' cannot be applied to operands of type 'T' and 'T'
Я не могу использовать value == null, потому что T может быть структурой.
Я не могу использовать value.Equals(default(T)), потому что value может быть null.
Каков правильный способ проверки равенства по умолчанию?