40
我遇到了使用Enum.TryParse時並不期待的行爲。Enum.TryParse對任何數值都返回true
如果我有一個枚舉:
public enum MyEnum
{
ValueA,
ValueB,
ValueC
}
然後我通過一個數值(字符串)到Enum.TryParse,如:
MyEnum outputEnum;
bool result = Enum.TryParse("1234", out outputEnum);
儘管字符串 「1234」 不是一個可能的值,結果將返回爲true,並且我的outputEnum將具有值1234.
有沒有辦法可以避免這種行爲?我試圖編寫一個函數,它將處理任意字符串輸入爲一個枚舉,並且在我的錯誤輸入檢測中拋出了一個monkeywrench。
http://stackoverflow.com/questions/4728295/why-enums-require-an-explicit-cast-to-int-type –