【发布时间】:2020-06-11 08:31:48
【问题描述】:
我正在重构一个代码 sn-p,其中我看到以下情况,我想知道它是否被简化了。
data.RecordId != 0 || (data.RecordId == 0 && data.SerialNum == "0000")
data.RecordId == 0 || data.SerialNum == "0000" 不也一样吗?
如果可能,怎么会?能详细点吗?
【问题讨论】:
-
if (data.RecordId != 0 || data.SerialNum == "0000")简称。data.RecordId != 0或(如果data.RecordId == 0)data.SerialNum == "0000" -
我看到另一个处理
&&的快捷方式评估的运行时差异:如果data.RecordId == 0在较长的表达式中为false,它将不会评估正确的部分将SerialNum,这可以避免……。像一个空参考。 -
@DmitryBychenko 你为什么删除你的答案,先生?我想检查一下?
-
@concurrencyboy 正如 Stgefano 在我的回答的 cmets 中提到的那样,您的 Q 中有一个错字,正如您所问的:“不是 data.RecordId == 0 || data.SerialNum == “0000”和那个一样吗?”这是不正确的,它是
data.RecordId != 0如果这是一个错字,那可能是你的解决方案。
标签: c# algorithm if-statement logic conditional-statements