提问人:MiP 提问时间:4/13/2017 更新时间:4/14/2017 访问量:88
如何在.NET中进行引用比较?
How to do reference comparison in .NET?
问:
在 F# 中的相等和比较约束中,它说:
请注意,没有“引用比较”之类的东西(.NET 使用的对象指针会四处移动,因此顺序会更改)。您可以通过使用唯一标记和自定义比较来实现这一点。
如何在 F# 和 C# 中使用唯一标记进行比较?
答:
2赞
Peter Duniho
4/14/2017
#1
如何在.NET中进行引用比较?如何在 F# 和 C# 中使用唯一标记进行比较?
请注意,在这种情况下,“比较”一词与“平等”不同。它描述了一种排序,而不仅仅是标识(这是支持的)。.正如参考文章所说,如果你想要订购,你必须自己强加。编译器无法为您推断一个,也不能有默认的“引用比较”,因为存在默认的“引用相等”。
可以应用该属性来要求类型实际上实现比较(类似于泛型约束),从而允许进行排序操作。这样,编译器就可以在编译时保证您的类型满足推断类型实现比较的要求。StructuralComparison
: comparison
那么,如何进行“参考比较”呢?你没有!正如文章所说,这没有意义。您需要使用已经实现比较的类型,或者例如为您的类型实现,以便它满足约束。IComparable<T>
comparison
如果您需要更多帮助,则需要更具体。发布一个问题,其中包括一个好的最小、完整和可验证的代码示例,显示你遇到的具体困难,尝试将参考文章中的建议应用到你自己的代码中,并准确解释你尝试过什么,以及你仍然难以工作的地方。
评论