考慮FileAttributes
枚舉,它是爲按位操作而設計的。我創建了一個系統,用戶在其中選擇一些複選框來確定文件的狀態。一個文件可能是ReadOnly
和System
。因此,該值將是5(1代表ReadOnly
,4個四個System
)。如何有效地驗證表示標記的枚舉的整數?
如何驗證整數是否爲有效的FileAttributes
枚舉?
我見過這些問題,但他們沒有幫助我,因爲他們不適合bitwised(標記,組合)的值。
Check that integer type belongs to enum member
Is there a way to check if int is legal enum in C#?
如果**標誌的任意組合**是有效的,你可以簡單地檢查每一位在'enum'值設置爲1,是一個有效的'enum'項目(用一個簡單的'for'和按位與)。 – 2012-08-11 08:41:57
如果你需要一個這樣的例子,只需查看'Enum.InternalFlagsFormat()'方法的源代碼(你不會建立一個字符串,但你會檢查該值是否有效)。 – 2012-08-11 08:47:24
如果因爲任何原因,這個枚舉不是很好的設計?例如它沒有'1'?在這種情況下,5返回true,而1不存在。 – 2012-08-11 08:49:27