おいちゃんのおぼえがき

仕事のTipsをメモするブログ

C# のビットフィールドって・・・

2013-06-13 | Win
まず、宣言ってか定義は enum にしないとダメなんだって。
しかも属性つけて値も手動で設定。

[Flags] // フラグ属性が必須。
public enum hoge {
  hoge1 = 0x01,  
  hoge2 = 0x02,
  hoge3 = 0x04,
   ....
};

で、フラグ立てたり落としたりは同じ。

  hoge  f;
  f |= hoge.hoge1;
  f |= hoge.hoge2;
  ....
  f &= ~hoge.hoge3;

でも、判定がちょっと違う。

  if (f.HasFlag(hoge.hoge1) == true) {
    ....
  }

Flags 属性のついた enum の判定関数 HasFlag() を使うって。
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« アセンブリ参照が不足しています | トップ | RaspberryPi で USB キーボー... »

Win」カテゴリの最新記事