【问题标题】:What does the &= operator do in C#? [closed]&= 运算符在 C# 中的作用是什么? [关闭]
【发布时间】:2011-07-23 05:53:41
【问题描述】:

&= 运算符在 C# 中的作用是什么?

例如:

bool approved;
// Approved is a property of cra, also bool
approved &= cra.Approved;

非常感谢!

【问题讨论】:

标签: c# operators boolean


【解决方案1】:

a &= b 等于 a = (a & b)

& 运算符执行按位与。这种按位与运算只涉及在结果中设置那些最初在ab 中设置的位。

【讨论】:

    【解决方案2】:

    这是一个逻辑与。

    来自 MSDN (& Operator):

    对于布尔操作数,& 计算其操作数的逻辑与;

    在您的代码中,这与以下内容相同:

    approved = approved & cra.Approved;
    

    【讨论】:

    • 我认为你弄错了运算符。
    • @Robert - 我当然没有。问题被编辑了,原来是问&...,而不是&=
    • 啊,那么我们都被骗了,还有其他发布答案的人(因为他们回答了编辑后的问题)。
    • @Robert - 查看他的评论历史记录。它现在已被删除,但他评论说这是一个“测试问题”。
    • 总而言之,对每个人来说都是浪费时间。
    【解决方案3】:

    对于布尔类型,它是逻辑和赋值运算符。对于整数类型,它是按位与赋值运算符。

    实际上等同于:

    approved = approved & cra.Approved;
    

    【讨论】:

      【解决方案4】:

      这是AND assignment operator

      基本上是在做:

      approved = approved & cra.Approved;
      

      如果之前为真且 cra.Approved 为真,则将已批准设置为真。

      【讨论】:

        【解决方案5】:

        表示它是一个复合赋值运算符。就像:

        i += 1;
        

        就像

        i = i + 1;
        

        所以

        approved &= cra.Approved;
        

        就像

        approved = approved & cra.Approved;
        

        在这种情况下,& 是逻辑 AND 运算符(因为我们正在处理 bool 值;对于整数,它将是按位 AND 运算符)。

        有关复合赋值运算符的确切性质的更多详细信息,请参阅 C# 4 规范的第 7.17.2 节。

        【讨论】:

        • Jon Skeet 的新事实:他可以回答测试/虚幻问题。
        猜你喜欢
        • 2012-05-22
        • 2014-01-14
        • 1970-01-01
        • 1970-01-01
        • 2011-02-04
        • 2011-06-11
        • 1970-01-01
        • 2017-04-29
        • 2013-10-12
        相关资源
        最近更新 更多