mwe*_*ber 52 c# validation enums tryparse
在使用Enum.TryParse时,我遇到了一种我没想到的行为.
如果我有一个枚举:
public enum MyEnum
{
ValueA,
ValueB,
ValueC
}
Run Code Online (Sandbox Code Playgroud)
然后我将一个数值(作为一个字符串)传递给Enum.TryParse,如:
MyEnum outputEnum;
bool result = Enum.TryParse("1234", out outputEnum);
Run Code Online (Sandbox Code Playgroud)
尽管字符串"1234"不是可能的值,但结果将返回true,而我的outputEnum将具有值1234.
有没有办法可以避免这种行为?我正在尝试编写一个函数,它将任意字符串输入作为枚举处理,这在我的错误输入检测中引发了一些麻烦.
小智 11
像这样使用它
bool result = Enum.TryParse("1234", out MyEnum outputEnum) && Enum.IsDefined(typeof(MyEnum), outputEnum);
Run Code Online (Sandbox Code Playgroud)
result 的值将为 false,但 outputEnum 的值仍然是 1234