[英]How can I get the bitmask value back out of an enum with the flag attribute in C#?
在我們的數據庫中,我們有一個位掩碼,表示用戶可以進行哪些類型的操作。
在我們的 C# 客戶端中,當我們從數據庫中檢索這個整數值時,我們構造了一個枚舉/標志。 它看起來有點像以下內容:
[Flags]
public enum SellPermissions
{
Undefined = 0,
Buy = 1,
Sell = 2,
SellOpen = 4,
SellClose = 8
// ...
}
在我們的應用程序中,我有一個編輯權限頁面,然后我使用該頁面對不同的枚舉值使用按位 OR 來修改此枚舉的值。
permissions = SellPermisions.Buy | SellPermissions.Sell;
現在,在進行這些更改后,在我的數據庫調用中,我需要調用一個需要整數值的更新/插入 sproc。
如何從我的枚舉/標志中獲取整數位值,以便我可以在數據庫中設置修改后的權限?
我能夠通過將變量轉換為int來實現。
int newPermissions = (int)permissions.
int permissionsValue = (int) permissions;
您可以像這樣使用 HasFlag():
SellPermissions permissions = SellPermissions.Buy | SellPermissions.Sell;
if(permissions.HasFlag(SellPermissions.Sell))
{
MessageBox.Show("You have Sell permissions");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.