C# 术语问题:&;操作人员
我已经阅读了很多资料,但它们的定义不同:C# 术语问题:&;操作人员,c#,operators,boolean,C#,Operators,Boolean,我已经阅读了很多资料,但它们的定义不同: &&是逻辑的逻辑运算符 我想这是对的 &&是逻辑与的运算符//I 我认为这并不精确 技术观点 &&是 条件运算符执行 逻辑和//我认为这是正确的 也 虽然所有的理解都是正确的,但我要说第一个是最精确的。还是我弄错了?连词是“和”的另一个词。所以他们的产出都是正确的 就它们实际给出输出的方式而言,&&通常不会计算第一个参数为false的第二个参数。连接词是“and”的另一个词。所以他们的产出都是正确的 就他们实际给出输出的方式而言,&&通常不会在第一个
- &&是逻辑的逻辑运算符 我想这是对的
- &&是逻辑与的运算符//I 我认为这并不精确 技术观点
- &&是 条件运算符执行 逻辑和//我认为这是正确的 也
虽然所有的理解都是正确的,但我要说第一个是最精确的。还是我弄错了?连词是“和”的另一个词。所以他们的产出都是正确的
就它们实际给出输出的方式而言,
&&
通常不会计算第一个参数为false的第二个参数。连接词是“and”的另一个词。所以他们的产出都是正确的
就他们实际给出输出的方式而言,&&
通常不会在第一个参数为false时计算第二个参数。这是一个简单的答案
它对返回布尔值的两个逻辑表达式执行AND运算。如果第一个为假,则不计算第二个
要计算两者,请使用&
答案很复杂
标题12.3.3.23似乎最为相关
我发现自己没有资格批评其中的定义
12.3.3.23和表达式
对于格式为expr first&&expr second
的表达式expr:
•expr first之前v的明确分配状态与expr之前v的明确分配状态相同
•如果在exprfirst
之后的v的状态是明确指定的或“在真表达式之后明确指定”,则在expr second
之前的v的明确指定状态是明确指定的。否则,它不会被明确指定
•expr后v的确定分配状态由以下因素确定:
o如果明确指定了第一次expr后v的状态,则明确指定了expr后v的状态
o否则,如果明确指定了expr second
之后的v状态,并且expr first
之后的v状态为“false expression之后的明确指定”,则明确指定了expr之后的v状态
o否则,如果明确指定了expr second
之后的v状态或“在真表达式之后明确指定”,则expr之后的v状态为“在真表达式之后明确指定”
o否则,如果expr第一次之后的v的状态为“假表达式之后的明确赋值”,而expr第二次之后的v的状态为“假表达式之后的明确赋值”,则expr之后的v的状态为“假表达式之后的明确赋值”
o否则,expr之后的v的状态没有明确指定
[示例:在以下代码中]
class A
{
static void F(int x, int y) {
int i;
if (x >= 0 && (i = y) >= 0) {
// i definitely assigned
}
else {
// i not definitely assigned
}
// i not definitely assigned
}
}
变量i
被认为是在if语句的一个嵌入语句中明确分配的,而不是在另一个语句中。在方法F中的if
语句中,变量i
是在第一个嵌入语句中明确分配的,因为表达式(i=y
)始终在执行此嵌入语句之前。相反,变量i在第二个嵌入语句中没有明确赋值,因为x>=0
可能测试为false,导致变量i
未赋值。结束示例]
我希望这能把事情弄清楚。答案很简单
它对返回布尔值的两个逻辑表达式执行AND运算。如果第一个为假,则不计算第二个
要计算两者,请使用&
答案很复杂
标题12.3.3.23似乎最为相关
我发现自己没有资格批评其中的定义
12.3.3.23和表达式
对于格式为expr first&&expr second
的表达式expr:
•expr first之前v的明确分配状态与expr之前v的明确分配状态相同
•如果在exprfirst
之后的v的状态是明确指定的或“在真表达式之后明确指定”,则在expr second
之前的v的明确指定状态是明确指定的。否则,它不会被明确指定
•expr后v的确定分配状态由以下因素确定:
o如果明确指定了第一次expr后v的状态,则明确指定了expr后v的状态
o否则,如果明确指定了expr second
之后的v状态,并且expr first
之后的v状态为“false expression之后的明确指定”,则明确指定了expr之后的v状态
o否则,如果明确指定了expr second
之后的v状态或“在真表达式之后明确指定”,则expr之后的v状态为“在真表达式之后明确指定”
o否则,如果expr第一次之后的v的状态为“假表达式之后的明确赋值”,而expr第二次之后的v的状态为“假表达式之后的明确赋值”,则expr之后的v的状态为“假表达式之后的明确赋值”
o否则,expr之后的v的状态没有明确指定
[示例:在以下代码中]
class A
{
static void F(int x, int y) {
int i;
if (x >= 0 && (i = y) >= 0) {
// i definitely assigned
}
else {
// i not definitely assigned
}
// i not definitely assigned
}
}
变量i
被认为是在if语句的一个嵌入语句中明确分配的,而不是在另一个语句中。在方法F中的if
语句中,变量i
被明确分配在第一个嵌入语句中,因为