在C#枚举中,使用负数是否有任何负面影响?
我正在建模响应代码,其中一个代码为负数.这编译,但我想知道是否有任何负面影响.
public enum ResponseCodes
{
InvalidServerUserPasswordCombo = -1,
// etc.
}
Run Code Online (Sandbox Code Playgroud)
Ric*_*ard 30
使用负数的负面影响
显然,对于任何底层签名类型,任何按位操作都会很快变得"有趣".
但是使用枚举作为相关常量的集合可以非常愉快地使用负值.
Sim*_*ead 12
没有负面的副作用,但请记住,在这个实例中枚举被初始化为零:
class YourClass {
public ResponseCodes ResponseCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
提供负面的将对该类的任何用户产生不希望的影响(除非他们初始化它.
小智 5
这个答案晚了 7 年,但我还没有在其他地方看到过这个观点。
使用负数进行枚举时会产生轻微的负面影响。如果要将负数转换为枚举,则需要确保该数字位于括号中以避免编译错误,例如:
class YourClass {
ResponseCodes rc = (ResponseCodes)(-1);
}
Run Code Online (Sandbox Code Playgroud)