这就是我为什么要让公平的原因吗?介绍了
本文关键字:介绍了 为什么 这就是我 | 更新日期: 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所说的,它还在进行结构之间的自定义相等性检查时避免了装箱。