【发布时间】:2012-09-23 01:45:12
【问题描述】:
目前我的网站有 4 个权限
Edit
Delete
Add
View
当有人订阅其他人时,每个人都会获得查看权限。
目前,我将每个列作为位值存储在我的数据库中。
我在想也许我应该将枚举与标志一起使用,但我有一些问题。
- 用户将能够选择用户权限(每个人都可以查看您无法取消的权限)。现在很容易,因为我使用了一个复选框,然后将 bool 值保存到数据库中。
我的问题是将复选框转换为枚举类型的最佳方法是什么?因此,如果他们选择添加权限,我可以将其映射到正确的枚举类型。
想知道有没有更好的办法
PermissionTypes t;
if(add == true)
{
t = PermissionTypes.Add
}
if(edit == true)
{
t += PermissionTypes.Edit // not sure if you even can do this.
}
我知道使用枚举标志你可以使用管道并执行类似的操作
PermissionTypes t = PermissionTypes.Add | PermissionTypes.Edit
我想知道在我的枚举中使用另一种类型是否是一种好习惯
AddEdit = Add | Edit
我认为这可能会导致许多组合(想象一下,如果我有 10 个权限或类似的权限)。
【问题讨论】:
-
你拥有的东西是相当合理的。
|等效于+=是|=。 -
你可以用
if(add)代替if(add == true)。
标签: c# asp.net-mvc enums