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