2010-06-03 27 views
3

在我們的數據庫中,我們有一個位掩碼,表示用戶可以做什麼類型的動作。如何從C#中的flag屬性的枚舉中獲取位掩碼值?

在我們的C#客戶端,當我們從數據庫中檢索這個整數值時,我們構造了一個枚舉/標誌。它看起來有點像下面這樣:

[Flags] 
public enum SellPermissions 
{ 
    Undefined = 0, 
    Buy = 1, 
    Sell = 2, 
    SellOpen = 4, 
    SellClose = 8 
    // ... 
} 

在我們的應用我有一個編輯權限頁面,然後我用它來修改使用位或在不同的枚舉值此枚舉值。

permissions = SellPermisions.Buy | SellPermissions.Sell; 

現在,這些更改後,在我的數據庫調用我需要調用哪些期待一個整數值的更新/插入存儲過程。

如何從我的枚舉/標誌中取回整型按位值,以便我可以在數據庫中設置修改後的權限?

回答

7

我能夠通過將變量轉換爲int來實現。

int newPermissions = (int)permissions. 
2
int permissionsValue = (int) permissions;