Как я могу вернуть значение Bitmask из перечисления с атрибутом флага в C#?

StackOverflow https://stackoverflow.com/questions/2966895

Вопрос

В нашей базе данных у нас есть 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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top