【发布时间】:2009-02-05 23:32:14
【问题描述】:
有没有比将枚举声明为更好的方法
public enum DepthNumberSize
{
Bit1 = 1,
Bit4 = 4,
Bit8 = 8,
Bit16 = 16,
Bit32 = 32
}
以及每次对相关数据块执行switch语句的操作时,如:
switch(size)
{
case DepthNumberSize.Bit1:
buffer[i++] = input[j] & 1;
buffer[i++] = (input[j] >> 1) & 1;
// cut
case DepthNumberSize.Bit8:
buffer[i++] = input[j++];
break;
case DepthNumberSize.Bit16:
buffer[i++] = input[j] | (input[j] << 8);
j += 2;
break;
// cut
}
?
谢谢。
【问题讨论】:
-
这个枚举实现了什么?为什么不直接写 16 而不是 DepthNumberSize.Bit16?
-
枚举正在阻止使用幻数。 “1”表示一个,“Bit1”表示“第一位”。这是有道理的。
-
@AR,我正在尝试重构它。我考虑过使用整数,但开关看起来更丑:-)
标签: design-patterns enums constants