< p >为什么引入
IEquatable<T>
接口的主要原因是什么?它允许您执行与 System.Object.Equals
方法相同的操作,但无需执行强制转换。 < / p >
< p >谢谢< / p >
IEquatable<T>
接口的主要原因是什么?它允许您执行与 System.Object.Equals
方法相同的操作,但无需执行强制转换。 < / p >
< p >谢谢< / p >
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.
}
}
}