我嘗試使用枚舉ToString
方法顯示枚舉值。 該枚舉具有Flags
屬性。如何使用flags屬性將枚舉格式化爲十六進制值?
有值不符合枚舉值的任何組合。
在這種情況下,ToString
返回數字作爲十進制,但我想顯示它爲十六進制字符串。
使用ToString("X8")
將始終返回十六進制值。我試過Enum.IsDefined
,但它只在非組合值上返回true。
例子:
0x00000201 -> "XXt, TSW_AUTO_DETECT" (known values)
0x00010108 -> "00010108" (unknown value)
問:如何"ToString"
未知枚舉值作爲十六進制值?
我在過去使用過類似的自定義'TypeConverter'。如果今晚還在等待答案,我會把它挖掘出來。 – ClickRick
醜陋的解決方案:使用'ToString',然後如果結果包含數字︰使用'ToString(「X8」)' – MrFox
@mrfox:我也想過這個,但是 - 正如你所說 - 這將是醜陋的... – joe