OR
簡単で単純な質問かもしれませんが、ビット単位の使用が決定された理由について、まだ少し混乱しています。A
4 つのフィールドを持つクラスがあるとします。
class A
{
private int Field1;
private static int Field2;
public int Field3;
public static int Field4;
}
Reflection
フィールドを取得するために使用します。
var fields = typeof (A).GetFields(BindingFlags.Public | BindingFlags.Static);
あなたが の初心者でReflection
の使い方がわからない場合BindingFlags
、頭の中で考える最初のロジックは次のようになります。
ビットごとの OR が使用されるため、この行はすべての静的 OR パブリック フィールドを選択します。そして、あなたが考える期待される結果:
Field2
Field3
Field4
しかし、F5 を押すと、結果はまったく異なります。ビットごとOR
の動作は次のようになりAND
ます。
Field4
論理的思考に従う可能性のあるビットごとの AND 演算子を使用してみませんか。このような:
var fields = typeof (A).GetFields(BindingFlags.Public & BindingFlags.Static);
MSDNで単語を見つけました:
フラグを結合するために使用されるビットごとの OR 演算は、状況によっては、単純なタスクには必要ない高度な概念と見なされる場合があります。
理解できるように、ここでの事前の概念を簡単に説明してもらえますか?