相关疑难解决方法(0)

为什么枚举权限通常有0,1,2,4值?

为什么人们总是使用enum值0, 1, 2, 4, 8而不是0, 1, 2, 3, 4

这与位操作等有关吗?

我真的很感激有关如何正确使用它的小样本片段:)

[Flags]
public enum Permissions
{
    None   = 0,
    Read   = 1,
    Write  = 2,
    Delete = 4
}
Run Code Online (Sandbox Code Playgroud)

c# permissions enums flags

157
推荐指数
5
解决办法
2万
查看次数

C#标志解析

我写了枚举:

[Flags]
public enum BundleOS {
    Win32 = 0,
    Win64 = 1,
    Mac = 2
}
Run Code Online (Sandbox Code Playgroud)

我需要从字符串解析它,并写入字符串.字符串样本:"Win32|Win64".下一代码返回无效结果:

BundleOS os;
Boolean result = TryParse<BundleOS>("Win32|Win64", out os);
Run Code Online (Sandbox Code Playgroud)

result变量中我得到了false值.但我需要true,os价值必须BundleOS.Win32|BundleOS.Win64有价值.


如果我这样做:

String x = (BundleOS.Win32|BundleOS.Win64).ToString();
Run Code Online (Sandbox Code Playgroud)

我需要得到这样的价值:"Win32|Win64"但是我得到了"Win64".

存在这些问题的简单解决方案吗?

c# flags parsing

2
推荐指数
1
解决办法
406
查看次数

"重新映射"简单二进制掩码的最佳方法是什么?

我有一个非常简单的二元面具.

1 =星期天

2 =星期六

4 =星期五

8 =星期四

16 =周三

32 =星期二

64 =星期一

因此,如果您想要周三,周四和周五的组合,则可获得16 + 8 + 4 = 28

现在我的代码中只有映射的二进制值.将这个值(28)重新映射到星期三,星期四和星期五的最佳方法是什么?

希望得到一些关于如何做到这一点的输入:).

亲切的问候,尼尔斯

c# binary remap

1
推荐指数
1
解决办法
251
查看次数

标签 统计

c# ×3

flags ×2

binary ×1

enums ×1

parsing ×1

permissions ×1

remap ×1