可能重复:
What is the diffference between the | and || or operators?
What does | (pipe) mean in c#?
我有一些代码是由办公室的另一位开发人员编写的,目前还没有。我在他的代码上有一些工作要做,但我以前没有昏迷。我尝试在这里搜索,但它剥离了我的|离开搜索行。我也不知道该符号的名称是什么,所以无法像那样搜索它。
this.Action.Values[key] = (int)this.Action.Values[key] | 1;
我的问题是在这种情况下单身或做什么?
答案 0 :(得分:7)
Bar(或管道),|
是一个按位OR
运算符,最简单的解释方法是它允许我们组合标志。考虑:
[Flags]
public enum WindowFlags
{
None = 0,
Movable = 1,
HasCloseBox = 2,
HasMinimizeBox = 4,
HasMaximizeBox = 8
}
使用按位OR运算符,我们可以组合标志,因此:
WindowFlags flags = WindowFlags .Movable | WindowFlags .HasCloseBox | WindowFlags .HasMinimizeBox;
我们可以使用以下方式“测试”给定的标志:
bool isMovable = (flags & WindowFlags .Movable);
移除旗帜对眼球来说有点紧张:
flags &= ~WindowFlags.HasCloseBox; // remove HasCloseBox flag
答案 1 :(得分:3)
这些是按位操作。
实施例
011000101
| 100100100
-----------
= 111100101
011000101
& 100100100
-----------
= 000000100
答案 2 :(得分:1)
此运算符仅表示OR
。
二进制|运算符是为整数类型和bool预定义的。对于 整数类型,|计算其操作数的按位OR。对于布尔 操作数,|计算其操作数的逻辑OR;那就是 当且仅当两个操作数均为假时,结果为false。
参考here
查看c#
中的所有运算符here答案 3 :(得分:1)
http://en.wikipedia.org/wiki/Bitwise_operation
&安培; =按位AND | =按位OR
答案 4 :(得分:1)
| - >逻辑/按位OR
&安培; - >逻辑/按位AND
答案 5 :(得分:1)
我认为这是一个有点操作员。请参阅http://en.wikipedia.org/wiki/Bitwise_operation。
答案 6 :(得分:1)
管道“|”是一个按位或运算符:http://msdn.microsoft.com/en-us/library/kxszd0kx.aspx
答案 7 :(得分:1)
二进制|运算符是为整数类型和bool预定义的。对于整数类型,|计算其操作数的按位OR。对于bool操作数,|计算其操作数的逻辑OR;也就是说,当且仅当两个操作数均为假时,结果为false。
http://msdn.microsoft.com/en-us/library/kxszd0kx(v=vs.100).aspx
答案 8 :(得分:1)
单个|是按位OR运算符