今日 XNA を使用しているときに、使用する列挙型の 1 つに値[Flags]
がないことに気付きました。None = 0
[Flags]
public enum Buttons
{
DPadUp = 1,
DPadDown = 2,
DPadLeft = 4,
DPadRight = 8,
Start = 16,
Back = 32,
LeftStick = 64,
RightStick = 128,
LeftShoulder = 256,
RightShoulder = 512,
BigButton = 2048,
A = 4096,
B = 8192,
X = 16384,
Y = 32768,
LeftThumbstickLeft = 2097152,
RightTrigger = 4194304,
LeftTrigger = 8388608,
RightThumbstickUp = 16777216,
RightThumbstickDown = 33554432,
RightThumbstickRight = 67108864,
RightThumbstickLeft = 134217728,
LeftThumbstickUp = 268435456,
LeftThumbstickDown = 536870912,
LeftThumbstickRight = 1073741824,
}
属性の適切な使用[Flags]
に関するMSDNによると:
flags enumerations のゼロ値に名前を付けてください
None
。フラグ列挙の場合、値は常にすべてのフラグがクリアされていることを意味する必要があります。
ボタンが押されていない値を示したい場合、値 0 を使用してにキャストする列挙型の意図に反しButtons
ますか? 設計ガイドラインによると、この値を持つべきですが、そうではありません。