1

我正在从交换邮箱读取分配权限的列表,这些值是通过 AccessFlag 属性返回的,该属性以十六进制返回 20001,看起来 2000 代表 READ 权限,1 代表 FULL 权限。

我想要做的是将该值显示为 READ & FULL 权限集。

4

3 回答 3

6

如果你想作为一个字符串,你需要一个枚举。

所以如果你有这样的事情:

[Flags]
enum Permissions
{
  Read = 0x20000,
  Full = 0x00001
}

然后你可以转换你的返回值并使用 ToString()

string val = ((Permissions )myValue).ToString();

它会出现这样的结果:

Read, Full

请注意,Flags 属性对于这种类型的枚举很重要。

于 2009-01-29T15:27:36.903 回答
3

老实说,我不确定你在问什么。

如果您有来自 AccessFlag 的值,并且您想查看它是否具有这些标志中的任何一个,您可以使用按位,例如

If((accessFlag & 0x2000) != 0) // It has FULL
If((accessFlag & 0x1) != 0) // It has READ
If((accessFlag & 0x2001) != 0) // It has READ AND FULL

这是你要找的吗?

于 2009-01-29T15:31:50.700 回答
0

您可以使用按位 XOR 运算符过滤掉您需要的值并从中推断出权限集。

于 2009-01-29T15:21:38.943 回答