2016-07-20 12 views
-1

Was ist der Unterschied zwischenC# flags vs Probe Aufzählungen

[Flags] 
    public enum AnswerFlags 
    { 
    A = (1 << 2), 
    B = (1 << 1), 
    C = (1 << 0) 
    } 

und

public enum AnswerFlags 
     { 
     A = 4, 
     B = 2, 
     C = 1 
     } 

Und warum soll ich mit Bits arbeiten, anstatt von ganzen Zahlen?

+0

Duplikat der Frage hier http://stackoverflow.com/a/8480/3856907 – Erik

+0

Bits sind oft nützlich bei der Arbeit mit Hardware-Ports und Register. Sie können auch in einigen Situationen nützlich sein, in denen eine extrem kompakte Darstellung wichtiger ist als die Klarheit des Codes. –

+0

Diese Frage beantwortet es für Sie: http://stackoverflow.com/questions/8447/what-does-the-flags-enum-attribute-mean-in-c?rq=1 –

Antwort

1

Der Kernunterschied zwischen Fahnen und klassischem enums ist, dass enum hält nur einen Wert: A oder B oder C während flags Sätze von Werten zu halten, sind gemeint: A oder B oder C oder AB oder AC oder BC oder ABC.

Vielleicht möchten Sie darüber hier lesen: MSDN