熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> ASP編程 >> 正文

C#枚舉中的位運算

2013-11-15 12:54:51  來源: ASP編程 

  本文介紹C#位運算的處理方法第一步 先建立一個枚舉表示所有的權限管理操作接下來是權限的運算等

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

   & = | = ~ =

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

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

  [Flags]

  public enum Permissions

  {

  Insert =

  Delete =

  Update =

  Query =

  }

  [Flags]表示該枚舉可以支持C#位運算 而枚舉的每一項值 我們用的n次方來賦值 這樣表示成二進制時剛好是 = = = = 每一位表示一種權限 表示有該權限 表示沒有

  接下來是權限的運算:

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

  Permissions per = PermissionsInsert | PermissionsUpdate

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

  Permissions per &= ~PermissionsInsert即是 & ~ = & =

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

  Permissions per = PermissionsInsert | PermissionsUpdate;

  if(per & PermissionsPermissionsInsert = PermissionsInsert)

  {

  //有操作權限

  }

  比較過程為 & = 位用與C#位運算把其它位都置成 變成只比較的這一位


From:http://tw.wingwit.com/Article/program/ASP/201311/21866.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.