Возможный дубликат:
Оператор Cant == применяется к общим типам в С#?
У меня есть следующий общий класс, и компилятор жалуется, что "Operator '!=' cannot be applied to operands of type 'TValue' and 'TValue'" (см. CS0019):
public class Example<TValue>
{
    private TValue _value;
    public TValue Value
    {
        get { return _value; }
        set
        {
            if (_value != value) // <<-- ERROR
            {
                _value= value;
                OnPropertyChanged("Value");
            }
        }
    }
}
Если я ограничу TValue до class, я мог бы использовать Object.Equals(). Поскольку мне это нужно для обеих структур и классов, я был бы очень счастлив, если бы мог это избежать.
Итак, вопрос в том, как я могу сравнить два элемента одного и того же, но неограниченного общего типа для равенства?
