为泛型类实现Equality方法?

时间:2016-09-09 18:18:44

标签: c# generics

我必须为下面的泛型类实现Equals方法。

public class SomeIdentifier<T>
        {
            public T Id { get; set; }
            public String Name { get; set; }

            public override bool Equals(object obj)
            {
                var other = obj as SomeIdentifier<T>;
                if (other == null)
                {
                    return false;
                }

                return Id == other.Id && Name == other.Name;
            }
        }

但我不允许比较Id == other.Id因为两者都是T型。

我收到以下错误消息 *运营商&#39; ==&#39;不能应用于&#39; T&#39;类型的操作数。和&#39; T&#39; *

1 个答案:

答案 0 :(得分:-2)

如果您知道T是引用类型,则可以在类定义中声明它:

public class SomeIdentifier<T> where T : class