C# 在两个枚举值之间交替
我有一个枚举,当满足条件时,我想在两个值之间交替。目前,我正在使用C# 在两个枚举值之间交替,c#,enums,C#,Enums,我有一个枚举,当满足条件时,我想在两个值之间交替。目前,我正在使用if/else来交换值,但是有没有更好的单行方法呢 if (myEnum == MyEnum.Val1) myEnum = MyEnum.Val2 else myEnum = MyEnum.Val1; 根据myEnum的值,您可以使用一些数学技巧,但始终可以使用?运算符: myEnum = myEnum == MyEnum.Val1 ? MyEnum.Val2 : MyEnum.Val1; 您可以使用三元
if
/else
来交换值,但是有没有更好的单行方法呢
if (myEnum == MyEnum.Val1)
myEnum = MyEnum.Val2
else
myEnum = MyEnum.Val1;
根据
myEnum
的值,您可以使用一些数学技巧,但始终可以使用?
运算符:
myEnum = myEnum == MyEnum.Val1 ? MyEnum.Val2 : MyEnum.Val1;
您可以使用三元操作: 如果需要,可以添加括号以提高可读性:
myEnum = (myEnum == MyEnum.Val1) ? MyEnum.Val2 : MyEnum.Val1;
两个值之间的交替通常意味着xor ing,那么这个呢:
myEnum ^= MyEnum.Val1 ^ MyEnum.Val2;
myenum=myenum==myenum.Val1?MyEnum.Val2:MyEnum.Val1
枚举可以强制转换为整数。因此,您可以将枚举值设置为1和-1,然后简单地乘以-1(或任何正/负数)!myBoolean@user3791372但上面的速度更快!和?:是微不足道的。
myEnum ^= MyEnum.Val1 ^ MyEnum.Val2;