C#のFlag属性を使用して、ビットマスク値を列挙から戻すにはどうすればよいですか?

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

質問

データベースには、ユーザーが作成できるアクションの種類を表すビットマスクがあります。

C#クライアントでは、データベースからこの整数値を取得するときに、列挙/フラグを作成します。それは多少次のように見えます:

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

アプリケーションには、編集許可ページがあります。これを使用して、ビットワイズまたは異なる列挙値を使用してこの列挙の値を変更するために使用します。

permissions = SellPermisions.Buy | SellPermissions.Sell;

ここで、これらの変更が行われた後、データベースコールで整数値を期待している更新/挿入SPROCを呼び出す必要があります。

データベースに変更されたアクセス許可を設定できるように、Integer Bitise ValuceをEnum/Flagから戻すにはどうすればよいですか?

役に立ちましたか?

解決

変数をintにキャストすることでそれを行うことができました。

int newPermissions = (int)permissions.

他のヒント

int permissionsValue = (int) permissions;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top