1
enum Test
{
X = 1,
Y = 1 << 1,
Z = 1 << 2,
All = ~0
}
將生成Test.All
作爲按位元素的一個標誌,無論在稍後的時間點將添加多少個值到Test
?例如,如果添加了新的價值觀:是否將枚舉值聲明爲〜0會生成一個(按位)的標誌?
enum Test
{
X = 1,
Y = 1 << 1,
Z = 1 << 2,
W = 1 << 3,
WAndZ = W | Z,
All = ~0
}
能夠保證所有的Test.All
總是包含所有其他值?
「全部」基本上相當於一個整數,所有位設置。 –
我錯過了什麼嗎?爲什麼不使用'-1'? – Rob
除此之外:雖然把None作爲沒有設置標誌的標籤是有用的,但你幾乎肯定不希望包含每個可能值的All標誌,即使是未分配的標誌。這是因爲「All」的含義有效隨着設計的每一個新標誌都會發生變化,對於從未編寫來處理它的軟件。 –