看到代碼里有用位操作來判斷條件的,以前沒有這么用過,做個筆記:
int add = 2;int modify = 4;int delete = 8;Console.WriteLine((add | modify | delete) & add); //2Console.WriteLine((add | modify | delete) & modify); //4Console.WriteLine((add | modify | delete) & delete); //8
但是直接使用整數進行位操作,可讀性不太好。
其實C#里有枚舉,也可以實現,但是C#的枚舉可讀性應該更好
[Flags]enum OperatingAuthorization{ Add = 2, Modify = 4, Delete = 8}OperatingAuthorization allOperating = OperatingAuthorization.Add | OperatingAuthorization.Modify | OperatingAuthorization.Delete;Console.WriteLine(allOperating & OperatingAuthorization.Add); //Add
這個可以用于判斷權限是否存在,
如allOperating & OperatingAuthorization.Add == OperatingAuthorization.Add,則可確定allOperating包含OperatingAuthorization.Add
這里可以假定allOperating是從數據庫取出來的
新聞熱點
疑難解答