我有一个senario,我正在使用以下枚举:
[Flags]
enum State
{
None = 0x00,
Added = 0x01,
Edited = 0x02,
Commented = 0x04,
Uncommented = 0x8,
Reordered = 0x16
}
我想得到像这样的结果
如果添加的结果将是
加
如果编辑后的结果将是
添加,已编辑
如果那么重新排序将是
添加,编辑,重新排序
如果那么评论将是
添加,编辑,重新排序,评论
如果那么取消注释
添加,编辑,重新排序,评论,取消注释
如果那么评论将是
添加,编辑,重新排序,评论,取消评论,评论
等等。
请使用任何Bitwise
操作建议我是否也可以这样做。
答案 0 :(得分:2)
您的两个要求使得无法为此目的使用按位标志枚举。
使用按位标志枚举时,所有这些操作都无法区分:
.directive('card', function() {
return {
restrict: 'E', // Element directive,
templateUrl: 'scripts/directives/card.html',
controller: 'cardController'
}
})
它们都表示为Added, Edited, Reordered
Added, Reordered, Edited
Added, Edited, Reordered, Edited
。
正如评论中所提到的,您应该使用Added | Edited | Reordered
来表示此数据。