.net Enum.Parse和自定义分隔符

.net Enum.Parse和自定义分隔符,.net,enums,.net,Enums,当前,Enum.Parse仅支持逗号作为值分隔符,因此 MemberOne,MemberThree 将正确分析,但 MemberOne|MemberThree 不会的。有没有办法强制Enum.Parse接受其他字符作为分隔符,例如,不使用字符串的“|”替换表达式参数?您可以为Enum类添加自己的自定义帮助器方法,如下所示: myEnum x = (myEnum)EnumHelpers.Parse(typeof(myEnum), "a|b"); 可以这样称呼: myEnum x = (myE

当前,Enum.Parse仅支持逗号作为值分隔符,因此

MemberOne,MemberThree
将正确分析,但

MemberOne|MemberThree

不会的。有没有办法强制Enum.Parse接受其他字符作为分隔符,例如,不使用字符串的“|”替换表达式参数?

您可以为Enum类添加自己的自定义帮助器方法,如下所示:

myEnum x = (myEnum)EnumHelpers.Parse(typeof(myEnum), "a|b");
可以这样称呼:

myEnum x = (myEnum)EnumHelpers.Parse(typeof(myEnum), "a|b");

您可以为Enum类添加自己的自定义帮助器方法,如下所示:

myEnum x = (myEnum)EnumHelpers.Parse(typeof(myEnum), "a|b");
可以这样称呼:

myEnum x = (myEnum)EnumHelpers.Parse(typeof(myEnum), "a|b");

你这么做想解决什么?没什么,事实上。。。只是当Enum.Parse实际使用按位或指定多个值时,使用“|”而不是“,”更符合逻辑。您这样做试图解决什么问题?实际上没有什么。。。只是当Enum.Parse实际使用按位或指定了多个值时,使用“|”而不是“,”更符合逻辑。+1-你比我快找到答案了。在框架中,Enum.Parse/TryParse中的分隔符char被硬编码为“,”,因此扩展此方法是最简单的方法。+1-你比我快找到了答案。在框架中,Enum.Parse/TryParse中的分隔符char被硬编码为“,”,因此扩展此方法是最简单的方法。