草庐IT

FlagsEnum

全部标签

c# - 枚举和减法运算符

有谁知道(也许:从什么时候开始)-=运算符在enum值上受支持?今天我正在愉快地编码,因为某种原因,我写了这个来从标志enum中排除一个值:flags-=FlagsEnum.Value1;在重新阅读和评估我的代码后,我很惊讶它编译后确实有效。将语句写成flags=flags-FlagsEnum.Value1但是不编译。到目前为止,我在文档和互联网上找不到任何内容。此外,不支持其他运算符(当然除了位运算符):+=(包括标志)、*=(Pascal中的交集)工作。这是C#编译器内置的语法糖吗?如果是这样,他们选择不包括其他运营商的原因是什么?一个简单的代码示例:usingSystem;usi