我有一个枚举,我希望在满足条件时在两个值之间交替。目前,我使用if
/ else
来交换值,但是有一些更好的单行方式吗?
if (myEnum == MyEnum.Val1)
myEnum = MyEnum.Val2
else
myEnum = MyEnum.Val1;
答案 0 :(得分:1)
您可以使用三元操作https://msdn.microsoft.com/en-us/library/zakwfxx4(v=vs.90).aspx:
myEnum = myEnum == MyEnum.Val1 ? MyEnum.Val2 : MyEnum.Val1;
如果需要,可以添加括号以便于阅读:
myEnum = (myEnum == MyEnum.Val1) ? MyEnum.Val2 : MyEnum.Val1;
答案 1 :(得分:0)
根据myEnum
的值,你可以做一些数学技巧,但你总是可以使用?
运算符:
myEnum = myEnum == MyEnum.Val1 ? MyEnum.Val2 : MyEnum.Val1;
答案 2 :(得分:0)
两个值之间的交替通常意味着xoring,那么如何:
myEnum ^= MyEnum.Val1 ^ MyEnum.Val2;