先看一个例子:
执行下面代码
结果是:e == Myenum.C
为什么中间有个逗号还不会报错呢?
我不做过多的测试,直接拿出.Net Reflector,定位到
mscorlib/CommonLanguageRuntimeLibrary/System/Enum/Parse(Type, string) : Object
直接转到
public static object Parse(Type enumType, string value, bool ignoreCase);
下面就是我们要分析的代码
现在可以知道,出现这样的结果就是因为这句话的作用
num |= num4;
把上面的测试稍作修改
执行下面代码
MyEnum e = (MyEnum)Enum.Parse(typeof(MyEnum), "A,B");
结果是:e == Myenum.B
为什么会得出B就不用我说了吧!