gpt4 book ai didi

c# - 对于引用类型,使用 IEquatable 如何减少转换的使用?

转载 作者:行者123 更新时间:2023-11-30 22:49:53 25 4
gpt4 key购买 nike

我读过几篇文章

使用 IEquatable 的引用类型减少了转换的使用

谁能提供一个有说服力的例子。

最佳答案

只是在Dario's explanation 之后添加一个简单的示例:

class Person : IEquatable<Person>
{
public string Name { get; set; }

public override bool Equals(object obj)
{
if (obj is Person)
{
Person other = (Person)obj;
// check equality
}
return base.Equals(obj);
}

#region IEquatable<Person> Members

public bool Equals(Person other)
{
// check equality without cast
}

#endregion
}

注意:这只是一个小片段,说明了为什么这避免了 cast。为了正确实现,请检查 docs :

If you implement IEquatable<(Of <(T>)>), you should also override the base class implementations of Object..::.Equals(Object) and GetHashCode so that their behavior is consistent with that of the IEquatable<(Of <(T>)>)..::.Equals method

关于c# - 对于引用类型,使用 IEquatable<T> 如何减少转换的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/888949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com