Как я могу вернуть значение Bitmask из перечисления с атрибутом флага в C#?
-
24-10-2019 - |
Вопрос
В нашей базе данных у нас есть Bitmask, которая представляет, какие типы действий могут предпринять пользователь.
В нашем клиенте C#, когда мы получаем это целочисленное значение из базы данных, мы строим перечисление/флаг. Это выглядит как следующее:
[Flags]
public enum SellPermissions
{
Undefined = 0,
Buy = 1,
Sell = 2,
SellOpen = 4,
SellClose = 8
// ...
}
В нашем приложении у меня есть страница «Редактирование разрешений», которую я затем использую для изменения значения этого перечисления, используя бить или в разных значениях перечисления.
permissions = SellPermisions.Buy | SellPermissions.Sell;
Теперь, после того, как эти изменения внесены, в моем вызове базы данных мне нужно вызвать обновление/вставить Sproc, который ожидает целочисленного значения.
Как мне вернуть целочисленное бить по биче
Решение
Я смог сделать это, подняв переменную в Int.
int newPermissions = (int)permissions.
Другие советы
int permissionsValue = (int) permissions;
Не связан с StackOverflow