【发布时间】:2011-07-30 09:09:27
【问题描述】:
为什么加法需要强制转换但减法不需要强制转换?请参阅下面的代码以了解我的要求
public enum Stuff
{
A = 1,
B = 2,
C = 3
}
var resultSub = Stuff.A - Stuff.B; // Compiles
var resultAdd = Stuff.A + Stuff.B; // Does not compile
var resultAdd2 = (int)Stuff.A + Stuff.B; // Compiles
注意:对于加法和减法,在上述所有三个示例中,结果是否超出(枚举的)范围都没有关系。
【问题讨论】:
-
我想选择“因为枚举的算术规则是奇怪的”,但我想我会等着看是否有人想出一个真正的解释。
-
你能告诉我们它在不编译时给你的错误吗?