C#中的枚举使用负数的负面影响

时间:2012-08-09 10:34:49

标签: c#

在C#枚举中,使用负数是否有任何负面影响?

我正在为响应代码建模,其中一个代码为负数。这编译但我想知道是否有任何负面影响。

public enum ResponseCodes
{
    InvalidServerUserPasswordCombo = -1,

    // etc.
}

4 个答案:

答案 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的任何值! :)