重複の可能性:
演算子 == を C# のジェネリック型に適用できませんか?
私は次の汎用クラスを持っていますが、コンパイラは " 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()
。構造体とクラスの両方にこれが必要なので、それを避けることができればとてもうれしいです。
問題は、同じであるが制約のないジェネリック型の 2 つの要素が等しいかどうかを比較するにはどうすればよいかということです。