2016-07-20 134 views
-1

是什麼C#標誌VS樣品枚舉

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

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

,我爲什麼要與位而不是整數的工作有什麼區別?

+0

複製的問題與硬件端口和寄存器時這裏http://stackoverflow.com/a/8480/3856907 – Erik

+0

位往往是有用的。在極其緊湊的表示比代碼的清晰度更重要的情況下,它們也可能有用。 –

+0

這個問題可以爲你解答:http://stackoverflow.com/questions/8447/what-does-the-flags-enum-attribute-mean-in-c?rq=1 –

回答

1

標誌和經典枚舉之間的核心區別是 枚舉僅保持一個值:A或B或C 而 標誌是爲了保持值集:A或B或C或AB或AC或BC或ABC。

你可能想在這裏讀到它: MSDN