日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#枚举中的位运算权限分配浅谈

發布時間:2025/4/16 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#枚举中的位运算权限分配浅谈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?常用的位運算主要有與(&),?或(|)和非(~),?比如:

?

1 & 0 = 0, 1 | 0 = 1, ~1 = 0

?

在設計權限時,?我們可以把權限管理操作轉換為C#位運算來處理.

?

第一步,?先建立一個枚舉表示所有的權限管理操作:

public enum Permissions

{

Insert = 1,

Delete = 2,

Update = 4,

Query = 8

}

?

枚舉的每一項值,?我們用2的n次方來賦值,?這樣表示成二進制時剛好是1 = 0001, 2 = 0010, 4 = 0100, 8 = 1000等,?每一位表示一種權限, 1表示有該權限, 0表示沒有.

?

接下來是權限的運算:

?

1.?權限的加法,?使用或運算來實現.?我們知道,?0001 | 0100 = 0101,?這樣就表示同時具有第一位和第三位的權限管理了,?枚舉表示為:

?

Permissions per = Permissions.Insert | Permissions.Update

?

2.?權限的減法,?使用與運算+非運算來實現,?如上面要去掉Insert權限,?操作為:

?

Permissions per &=?~Permissions.Insert即是?0101 & ~0001 = 0101 & 1110 = 0100

?

3.?權限的判斷,?使用與運算,?當判斷用一用戶是否具有該操作權限時,?要把用戶的的權限與操作權限進行與運算,?如果得到的結果仍是操作權限管理,?則表示用戶具有該權限:

?

Permissions per = Permissions.Insert | Permissions.Update;

if(per & PermissionsPermissions.Insert = Permissions.Insert)

{

//有操作權限

}

?

比較過程為?0101 & 0001 = 0001, 0001的0位用與C#位運算把其它位都置成0,?變成只比較1的這一位.

轉載于:https://www.cnblogs.com/yy1234/p/9585349.html

總結

以上是生活随笔為你收集整理的C#枚举中的位运算权限分配浅谈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。