我的位掩碼的錯誤代碼與字符串表示和一個二進制INT表示一個枚舉:F#哈希碼枚舉轉換
type ErrorCodes =
| NoError = 0
| InvalidInputError = 1
| AuthenticationFailedError = 2
| InvalidArgumentError = 4
| ItemNotFoundError = 8
| UnknownError = 16
正如我通過程序運行,我通過使用收集的所有錯誤按位或運算符(|||)。所以現在我有一些看起來像01100的東西。我怎樣才能打印到控制檯:「InvalidArgumentError」和「ItemNotFoundError?」
我剛剛使用的一個想法:
for i = 0 to 32 do
if ((err.GetHashCode() % 2) = 1) then
Console.WriteLine("ErrorCode: {0}",err.GetHashCode())
但現在我如果您裝點您的ErrorCodes
型與System.Flags
屬性,那麼.ToString
將格式化我被困在如何打印的實際字符串