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
被明确分配在第一个嵌入语句中,因为