C# 这就是我的理由吗<;T>;是谁介绍的?
之所以引入C# 这就是我的理由吗<;T>;是谁介绍的?,c#,C#,之所以引入IEquatable接口,是因为它允许您执行与System.Object.Equals方法相同的操作,但不必执行强制转换 我想,谢谢你使它的打字安全Equals()将对象作为参数,因此,如果传入错误类型的对象,则在运行该对象之前不会看到错误 一个原因是,您可以要求类与所需类型相等,而不一定是该类型。例如 public void MyClass<T> where T : IEquatable<Foo> { private static readonly F
IEquatable
接口,是因为它允许您执行与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.
}
}
}
public void MyClass,其中T:i可满足
{
私有静态只读Foo SpecialFoo=Foo.SpecialFoo;
处理测试的公共无效MyMethods(T)
{
if(theT.Equals(SpecialFoo))
{
//过程测试。
}
}
}
除了@Bala R所说的,它还避免了在结构之间进行自定义相等性检查时装箱