我有以下泛型类,编译器抱怨“ 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()
. 由于我对结构和类都需要这个,但如果我能避免这种情况,我会很高兴。
所以问题是,我如何比较两个相同但不受约束的泛型类型的元素是否相等?