我经常阅读这样的代码:
System.Diagnostics.DebuggableAttribute.DebuggingModes.DisableOptimizations | System.Diagnostics.DebuggableAttribute.DebuggingModes.EnableEditAndContinue | System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | System.Diagnostics.DebuggableAttribute.DebuggingModes.Default)
在C#程序中,有时像这样的参数,这是什么意思?
我从谷歌搜索过,但没有有价值的答案,'|'无法在Google引擎中进行属性解析,也许我在搜索时使用了错误的方法。
答案 0 :(得分:4)
'|'是按位or
运算符,在这种情况下,它用于创建枚举值,并设置所有给定的位。
DebuggingModes
是一个bitflag枚举 - 这意味着每个位都可以指示一个标志,并且单个DebuggingModes
值可用于发出多个标志信号。
枚举可以使用BitFlagsAttribute
:
[FlagsAttribute]
public enum DebuggingModes
{
Default = 0,
DisableOptimizations = 1,
EnableEditAndContinue = 2,
...
}
答案 1 :(得分:3)
在这种情况下,它似乎是Flags enum
[Flags]
public enum Types
{
None = 0,
Type1 = 1,
Type2 = 2,
Type3 = 4,
}
所以
Types someType = Types.Type1 | Types.Type2;
意味着它有两种类型。
答案 2 :(得分:1)
这是一个bitwise OR operator iin C#。这里用于创建具有所有给定位集的enum value。
二进制|运算符是为整数类型和bool预定义的。对于 整数类型,|计算其操作数的按位OR。对于布尔 操作数,|计算其操作数的逻辑OR;那就是 当且仅当两个操作数均为假时,结果为false。
答案 3 :(得分:1)
这是一个逻辑or
运算符。有关完整说明,请参阅here。
文档中的主要说明:
二进制|运算符是为整数类型和bool预定义的。对于整数类型,|计算其操作数的按位OR。对于bool操作数,|计算其操作数的逻辑OR;也就是说,当且仅当两个操作数均为假时,结果为false。
答案 4 :(得分:0)
时|用作||它是OR运算符,在这里它用作枚举值