【发布时间】:2015-02-26 09:41:04
【问题描述】:
请考虑以下代码:
public enum Status
{
S1 = 1,
S2 = 2,
S3 = 3,
S4 = 4
}
我知道我可以使用| oerator 将多个枚举传递给一个方法:
public void DoWork(Status S)
{
}
...
DoWork(Status.S1 | Status.S2);
现在在 DoWork 方法中,我想获取传递的枚举的值。例如在上面的代码中我想得到{1, 2}。我该怎么做?
谢谢
【问题讨论】:
-
您应该使用 2 的幂作为值 (1, 2, 4, 8...),并使用
[Flags]属性标记Status枚举。 -
@Sharped 在那个问题中,我没有看到解释如何将(标志)枚举转换为枚举值数组/列表的响应
-
@Sharped :不,这不是该主题的重复。我想获取枚举值