2011-04-19 48 views

回答

5

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

+0

谢谢大家的帮助 – flockofcode 2011-04-20 19:08:02

3

其中一个原因是,您可以要求班级与所需类型相等,而不一定是该类型。例如。

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. 
     } 
    } 
} 
3

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

相关问题