7月 2015年

C# で enum を フラグ として 演算 & 判定 する 方法

enum を ビットフラグ として利用することはよくあると思いますが、 フラグとして利用する際、よく直面する フラグ操作(フラグ演算、判定) をまとめてみました。 目次 フラグ利用する enum の作成 フラグ 演算 フラグ 判定 フラグ利用する enum の作成 ビット演算できるよう、数値は被らないように値を設定する必要があります。 おおよそ 2進数 における 各桁 が 1 となるような設定になります。 具体的には 1 (=2^0), 2 (=2^1), 4 (=2^2), 8 (=2^3), 16 (=2^4) … といった感じです。 フラグ利用する enum の場合、 Flags 属性 をつけるのもポイントです。 [Flags] public enum Week { Sunday = 0x001, Monday ...

C# で enum と int 、 string を 相互 に 変換 する 方法

列挙型 (enum) から 文字列 (string) または 数値 (int/long等) に変換したり、その逆で、文字列 (string) や 数値 (int/long等) を 列挙型 (enum) に変換する方法について、まとめました。 ここでは、シンプルに 型の相互変換 についてのみ記載しています。 以下のサンプルコードでは、下に示す Season 列挙型 が存在する前提で記載しています。 [Flags] public enum Season { Spring = 0x01, Summer = 0x02, Autumn = 0x04, Winter = 0x08 } 列挙型(enum) → 文字列(string) var enmVal = Season.Spring; var strVal = Enum.GetName(t ...