回答
你应该能够确定引用是等价的。
尝试使用ReferenceEquals函数检查是否有对同一对象的引用。
但是'Equals'用于测试这两个对象是否“喜欢”。即使有两个对象,情况也是如此。例如'string x =“abc”;字符串y =“a”; y + =“bc”;',代码运行后,'x'和'y'具有相同的散列码。 'Equals'返回'true',因为'x'和'y'具有相同的字符串值。但'ReferenceEquals'返回'false',因为'x'和'y'指的是两个对象,不是同一个(不重要的是两个对象实际上是相同的)。 –
@JeppeStigNielsen你是对的。但是,我相信提问者试图确定他是否提及同一个对象,而不是如果变量的值相等。 – Mash
如果她(@HodayaShalom)真的只对对象平等感兴趣,而不是使用'x.GetHashCode()',她可以说'RuntimeHelpers.GetHashCode(x)'。即使“x”和“y”是两个“等于”wrt的对象实例,它将(以极高的概率)给出唯一的代码。 'Equals'。另一方面,重写的实例方法'GetHashCode()'(无参数)必须为'x'和'y'提供一个共同的哈希。 –
这在文档中有很多介绍。假设你只有散列码:
GetHashCode方法的默认实现不是 保证了不同对象的唯一返回值。此外,.NET Framework不保证 GetHashCode方法的默认实现,并且它返回的值将在 不同版本的.NET Framework之间相同。因此,不得将此方法的默认实现用作散列目的的唯一对象 标识符。
从http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx
我读过它,但让我们说这样的事情发生了,我无法改变它,没有办法知道两个变量之间的差异? –
假设你有旧的哈希码,不。你可以检查对象引用是否相等,但你的问题似乎暗示你所知道的是散列码。 –
- 1. PyGame雪碧冲突冲突
- 2. 意外的颠覆冲突行为(冲突没有冲突)
- 3. 我如何automerge非冲突的冲突
- 4. .htaccess的冲突
- 5. jQuery的冲突
- 6. 冲突的WordPress
- 7. JQuery的冲突?
- 8. jQuery的冲突
- 9. jQuery的冲突
- 10. jQuery的冲突
- 11. 冲突的
- 12. 冲突的Dll
- 13. 冲突的jQuery
- 14. 的PendingIntent冲突
- 15. jQuery的冲突
- 16. 冲突
- 17. 冲突
- 18. 冲突
- 19. 冲突
- 20. 冲突
- 21. 冲突
- 22. 冲突
- 23. 冲突
- 24. 冲突
- 25. 冲突
- 26. 冲突
- 27. 冲突
- 28. 冲突
- 29. 冲突
- 30. CustomPouchError 409冲突文档更新冲突
你可以发布代码吗?我不太确定“在同一个HashCode上是什么意思是我能得到它们的唯一方式”。 –
我没有代码,它是一个普遍的问题。 –