这就是我为什么要让公平的原因吗?介绍了

本文关键字:介绍了 为什么 这就是我 | 更新日期: 2023-09-27 17:50:41

引入IEquatable<T>接口的主要原因是它允许您执行与System.Object.Equals方法相同的操作,但无需执行强制类型转换?

谢谢

这就是我为什么要让公平的原因吗?介绍了

为了使它类型安全,我想。Equals()接受一个对象作为参数,因此如果你传入一个错误类型的对象,你不会看到一个错误,直到你运行它。

原因之一是您可以要求类与所需类型等价,而不必是该类型。例如

public void MyClass<T> where T : IEquatable<Foo>
{
    private static readonly Foo SpecialFoo = Foo.SpecialFoo;
    public void MyMethodThatProcessesTs(T theT)
    {
        if (theT.Equals(SpecialFoo))
        {
            // process theT.
        }
    }
}

除了@Bala R所说的,它还在进行结构之间的自定义相等性检查时避免了装箱。