非标志枚举上的按位运算

MeT*_*tus 0 c#

鉴于以下枚举:

enum MyEnum
{
    ValueOne = 1,
    ValueEmpty,
    ValueTwo = 2,
    ValueThree = 2,
    ValueFour = ValueOne | ValueEmpty,
    ValueFive = ValueTwo | ValueThree
}
Run Code Online (Sandbox Code Playgroud)

ValueFour和ValueFive元素中涉及的操作是什么,因为这些是我得到的值?

//Is assigned 3
var valueOne = (int) MyEnum.ValueFour;

//Is assigned 2
var valueTwo = (int)MyEnum.ValueFive;
Run Code Online (Sandbox Code Playgroud)

谢谢

I4V*_*I4V 5

ValueEmpty是2(ValueOne+1)

valueFour是3(2 | 1)(按位或,0010OR 0001= 0011)

ValueFive是(2 | 2),它是2(按位或,0010OR 0010= 0010)