知り合いから論理和を習った
public enum CONDITION_TYPE:short { DATE_SCOPE = 1, USER = 2, SORT = 4 }; 引数に論理和を入れて条件を自由に設定できる。 SetHoge(CONDITION_TYPE.USER | CONDITION_TYPE.SORT); 比較には論理積を使う。入っていれば1入っていなければ0が返る。 public SetHoge(short p) { if (p & CONDITION_TYPE.DATE_SCOPE) { Console.Writeln("DATE_SCOPEが入っているよ"); }else if (p & CONDITION_TYPE.USER) { Console.Writeln("USERが入っているよ"); }else if (p & CONDITION_TYPE.SORT) { Console.Writeln("SORTが入っているよ"); } }
参考:機械語の時に、0を代入する時は、論理積を使ったら早いから下のようなことをしてたらしい
- MOV AH,0
- XOR AH,AH ←こっちの方が早い