|
|
1
2328
请注意
还需要注意的是
声明不正确:
如果以这种方式声明,则值将为黄色=0、绿色=1、红色=2、蓝色=3。这将使其无法用作标志。 下面是一个正确声明的示例:
或在.NET 4之前:
暗中 这是因为在枚举中使用了二的幂。在封面下,枚举值在二进制1和0中如下所示:
允许的颜色
关于使用
有关flags属性及其用法的更多信息,请访问 msdn 和 designing flags at msdn |
|
|
2
829
我发现位移位比键入4、8、16、32等更容易。它对代码没有影响,因为它都是在编译时完成的 |
|
|
3
126
https://stackoverflow.com/a/8462/1037948 (通过位移位进行声明)和 https://stackoverflow.com/a/9117/1037948 (在声明中使用组合)可以对以前的值进行位移位,而不是使用数字。不一定推荐,但只是指出你可以。 而不是:
你可以申报
与LinqPad确认:
结果:
|
|
|
4
50
有关声明和潜在用途的示例,请参见以下内容:
|
|
|
5
49
我认为这种表述清楚地表明了旗帜是如何工作的 暗中 |
|
|
6
41
asked recently 关于类似的事情。 如果使用标志,则可以向枚举添加扩展方法,以便更容易地检查包含的标志(有关详细信息,请参阅文章)
然后你可以做:
我发现这比大多数检查包含标志的方法更容易阅读。 |
|
|
7
30
用法:
由于C#7.0,您可以使用二进制文字,这可能更直观:
|
|
|
8
23
|
|
9
18
|
|
10
15
在这种情况下,您真正需要知道的是 如果在进行位掩码后存在非零值[1] .
基于@andnil的设置进行构建。。。
|
|
11
11
标志允许您在枚举内使用位掩码。这允许您组合枚举值,同时保留指定的枚举值。
|
|
12
1
如果有人已经注意到这种情况,请道歉。一个完美的例子,旗帜,我们可以看到在反射。对 Binding Flags ENUM .
用法
|
|
|
13
-4
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |