此代码片段按预期工作int
type:
public class Test
{
public int Value
{
get => _Value;
set
{
if (_Value != value)
_Value = value;
}
}
private int _Value;
}
When int
被通用替换T
,编译器抱怨:
运算符“!=”不能应用于“T”和“T”类型的操作数
为什么会出现这种情况,有办法解决吗?
using System.Collections.Generic;
public class Test<T>
{
public T Value
{
get => _Value;
set
{
// operator== is undefined for generic T; EqualityComparer solves this
if (!EqualityComparer<T>.Default.Equals(_Value, value))
{
_Value = value;
}
}
}
private T _Value;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)