通用等式比较器

时间:2016-08-05 15:02:28

标签: c# generics equality equals-operator

我正在尝试编写通用的相等比较器。我已经写了以下代码。

public static bool Equals<T>(T t1, T t2)
{
    bool result;
    if (typeof(T).IsPrimitive)
    {
        result = t1 == t2;
    }
    else
    {
        if (t1 == null)
        {
            result = t2 == null;
        }
        else
        {
            result = t1.Equals(t2);
        }
    }
    return result;
}

但是由于行Operator '==' cannot be applied to operands of type 'T' and 'T'的编译错误result = t1 == t2;,我无法使用此代码。有没有其他方法来实现这一目标?我希望能够在任何T (class, struct, primitive)

上使用此方法

此问题与this question不重复。正如我在评论中所写,我不必使用==。这只是我试过的方法之一

0 个答案:

没有答案