![]() |
1
76
在我看来,任何人说总是用其中一个或另一个给你的建议都是拙劣的。
实际上,可以调用几种不同的方法来比较对象实例。给定两个对象实例
这些都可以做不同的事情!
注意上面最后一段。。。我们稍后再讨论。
所以,是的,存在使用
实例方法
但是静态版本的呢
简而言之,根据您选择调用的方法,您得到的比较行为可能会有很大的不同。不过,这里有一条评论:微软并没有正式记录微软的内部行为
这个方法使意图非常清楚-您特别希望结果是比较两个引用以获得引用相等。使用类似
“嘿,这太尴尬了,换成:
可能会有所不同。
不过,让我们在这里注入一些实用主义。
没有必要(而且很难看)写:
|
![]() |
2
5
|
![]() |
3
3
当您要测试标识(内存中的相同位置)时:
但要确保你真的想要身份测试。考虑以下几点:
它回来了
和
两者都返回
如果你期待的是
当您要测试相等性(相同内容)时:
现在,要解决最初的问题:
A:是的。获得100%安全相等性测试的唯一方法是自己对空值进行预测试。 但你应该吗?这个bug将出现在那个(假设的未来坏类)中,它将是一种直接的失败类型。易于调试和修复(由提供类的任何人)。我怀疑这是一个经常发生的问题,或者当它确实发生时会持续很长时间。
更详细的A:
所以呢
|
![]() |
4
2
这个
framework guidelines
建议你
因此,假设这些准则在这里适用,选择语义上合理的。如果您处理的是不可变对象,并且您希望这两种方法产生相同的结果,那么我将使用
|
![]() |
5
1
关于“…编写代码来处理作者控制之外的对象…”,我要指出
|
![]() |
6
0
当我试图比较对象的唯一Id时,我在这里结束了,这些对象本身可能是空的。我们发现先对缺失的数据进行插补,然后再进行比较更容易。
|
![]() |
saber · MySql查询没有结果 2 年前 |
![]() |
pigfox · Mysql空表联接失败 6 年前 |
![]() |
Jaa Zaib · 返回空值的大小写表达式 6 年前 |
![]() |
Robert Vogelezang · 为什么null未写入输出窗口? 6 年前 |
![]() |
l. schwarz · sql长度(null) 6 年前 |
![]() |
ÇAÄrı Keskin · SQL-删除(消除)没有数据的列 6 年前 |
|
Dorkymon · 使用系统在输出处获取null。出来打印F 6 年前 |