What does | (pipe) mean in c#?
只是想知道管道在这里意味着什么?我以前从未见过:
1 2 3 4 | FileSystemAccessRule fullPermissions = new FileSystemAccessRule( "Network Service", FileSystemRights.FullControl | FileSystemRights.Modify, AccessControlType.Allow); |
干杯
对于用[Flags]属性标记的枚举,竖线表示"and",即将给定值相加。
编辑:这是一个位"或"(虽然语义上是"and"),例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [Flags] public enum Days { Sunday = 0x01, Monday = 0x02, Tuesday = 0x04, Wednesday = 0x08, Thursday = 0x10, Friday = 0x20, Saturday = 0x40, } // equals = 2 + 4 + 8 + 16 + 32 = 62 Days weekdays = Days.Monday | Days.Tuesday | Days.Wednesday | Days.Thursday | Days.Friday; |
它是一个位或但语义上你认为它是一个和!
它通常是位或运算符。在此上下文中,它用于设置了flags属性的枚举。
我假设你的意思是:
此文件系统权限是一个具有fullcontrol和modify的枚举,具有自己的数值。
所以如果fullcontrol=1,modify=2,
1 2 | FileSystemRights.FullControl | FileSystemRights.Modify = 3. 00000001 | 00000010 = 00000011. |
每个位都是该方法的"标志"。输入检查设置了哪个"标志"以及要做什么。
所以在这个例子中,位置1(本例中右边的数字)是fullcontrol,位置2是modify。该方法查看每个位置,并更改其行为。使用标志是一种传递行为的多个参数的方法,而不必为每个可能性(例如bool allowfullcontrol、bool allowmodify)等创建参数。
位运算符
它是一个二元运算符:
Binary | operators are predefined for
the integral types and bool. For
integral types, | computes the bitwise
OR of its operands. For bool operands,
| computes the logical OR of its
operands; that is, the result is false
if and only if both its operands are
false.
它是一个按位或由两个值组成的,大概它创建了一个同时设置了完全访问和修改权限的FileAccessRule。
它是一个布尔或。fullcontrol和modify表示掩码中的位。例如,0001和0101。如果你将这些通过管道结合,你会得到0101。