我(还)学习C# - ,我想我明白之间的差别&和&&以及|&||...
但是,在阅读了另一本指南之后,很明显我没有得到它.
我写了一个小小的真值表,正如我想的那样,它们会返回相同的.从我所看到的,使用双符号听起来像一个优秀的解决方案,但我有点困惑的差异,并想知道是否有人可以请解释/举例为什么/何时你会使用一个而不是另一个 - 我试过阅读MSDN示例,但它让我比起初时更加困惑!

(而且,如果有人能想出更好的头衔,请随意改变它......写一个很尴尬!)
&可以以两种不同的方式使用:按位"和"和逻辑"和"
逻辑&和&&之间的区别仅在于您使用&时,即使第一个表达式已经为假,也会对第二个表达式进行求值.如果你想在循环中初始化两个变量,这可能(例如)很有趣:
if ((first = (i == 7)) & (second = (j == 10))) { //do something }
Run Code Online (Sandbox Code Playgroud)
如果您使用此语法,则第一个和第二个将始终具有值(如果您使用)
if ((first = (i == 7)) && (second = (j == 10))) { //do something }
Run Code Online (Sandbox Code Playgroud)
可能是在评估之后只有第一个具有值.
对于|是一样的 和||:如果使用|,如果使用||,则总是计算两个表达式 可能只有第一个表达式被计算,如果第一个表达式为真,则会出现这种情况.
相比之下,在其他应用中,&&可能是更好的选择.如果myNumber是类型int?,你可以有类似的东西
if (myNumber != null && myNumber.Value == 7)
Run Code Online (Sandbox Code Playgroud)
这只会myNumber != null首先评估,如果空检查没问题,它只会评估第二个表达式.
if (myNumber != null & myNumber.Value == 7)
Run Code Online (Sandbox Code Playgroud)
如果myNumber为null,则在评估第二个表达式期间将以NullPointerException结束.因此,您可以在此上下文中使用&&.
| 归档时间: |
|
| 查看次数: |
1269 次 |
| 最近记录: |