如何解决运算符“!=”不能应用于“T”和“T”类型的操作数[重复]

2023-11-23

此代码片段按预期工作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(使用前将#替换为@)

如何解决运算符“!=”不能应用于“T”和“T”类型的操作数[重复] 的相关文章

随机推荐