在C#枚举中,使用负数是否有任何负面影响?
我正在为响应代码建模,其中一个代码为负数。这编译但我想知道是否有任何负面影响。
public enum ResponseCodes
{
InvalidServerUserPasswordCombo = -1,
// etc.
}
答案 0 :(得分:26)
使用负数的负面影响
显然,对于任何底层签名类型,任何按位操作都会很快变得“有趣”。
但是使用枚举作为相关常量的集合可以非常愉快地使用负值。
答案 1 :(得分:9)
没有负面的副作用,但请记住,在这种情况下枚举被初始化为零:
class YourClass {
public ResponseCodes ResponseCode { get; set; }
}
只提供否定的一个将对该类的任何用户产生不良影响(除非他们初始化它。
答案 2 :(得分:4)
这个答案迟到了7年,但我还没有看到其他地方提出的要点。
对枚举使用负数时会产生较小的负面影响。如果要将负数强制转换为枚举,则需要确保该数字在方括号内,以避免编译错误,例如:
class YourClass {
ResponseCodes rc = (ResponseCodes)(-1);
}
答案 3 :(得分:3)
不,枚举是一个整数类型的值,这可以是-2,147,483,648到2,147,483,647的任何值! :)