はなちるのマイノートスマートフォン用の表示で見るはなちるのマイノートUnityをメインとした技術ブログ。C#Tweetはじめに今回は列挙型にビット演算を用いて同時にフラグをたてれるようにする記事になります!突然ですが、こちらのコードを見てみてください。Mera}いわゆる列挙型といういうやつですね。ドラクエの魔法を列挙型で表現してみました。この魔法を複数習得したいときってないでしょうか?いまの状態だと4つのうち一つしか習得できません。そんなときはビット演算を用いることで簡単に表現することができます。いうことで早速みていきましょう!ビットフラグとはまずはビットフラグという考え方についてみてみましょう。この画像をみてみてください。これはMagicはint型の10という数字ですが、2進数で表すと1010になります。その1010に先頭からbool型のメラ・ホイミ・ギラ・ヒャドを対応させているイメージです。数字が1ならTrue,0ならFalseという訳ですね。列挙型を定義する先程のビットフラグを列挙型にも用いてみましょう。以下のようなコードを書いてみます。(10進数だと8)}これで先程のビットフラグの例と対応した列挙型が作成できました。2という操作をすると0001(10進数で1)が0100(10進数で4)という感じで左に2個ずらすことができます。ちなみにこのように書いてもOKです。//2進数だと1000}最後にFlags属性をつけてあげることで完成です。ちなみにこれはあってもなくてもToStringをしたときの表示が変わるくらいで、あまり意味があることではありません。一応見て分かりやすいようにお作法だと思っていいでしょう。Systemを書くことを忘れずにしましょう。Meraこれは2進数のこのような性質を用いることで実現しています。1特定のフラグの操作をしたいとき加えて特定のフラグの操作をしたいときはこのように書きます。B)とNOT演算(~A)を用います。B)を用いて行います。//Flase}さいごに列挙型とビット演算について書かせていただきました。メモリ的にも良いという印象を受けますが、C#だとそうでもないっぽい?ようでまだよく分かっていません。分かる方がいらしたら是非コメント等で教えていただけると嬉しいです。はてなブログProUnityをメインとした技術ブログ。(9)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。