如何在C#中使用字节常量作为切换案例?

时间:2015-11-18 18:33:46

标签: c# switch-statement byte

我正在开发一种需要尽可能低带宽的网络协议。因此,我决定不使用string标头作为每种邮件类型,例如"connect""move""disconnect",最好使用byte

这是我到目前为止的一小部分:

// Message types
public static readonly byte CONNECT = 100;
public static readonly byte MOVE = 101;
public static readonly byte DISCONNECT = 102;

现在其他地方我有:

switch (in_message.ReadByte())
{
    case CONNECT: Connect(); break;
    case MOVE: Move(); break;
    case DISCONNECT: Disconnect(); break;
}
Client.Recycle(in_message);

Visual Studio似乎不喜欢我使用字节常量的事实,具体的错误消息是A constant value is expected

有什么方法可以让这些字节常量与switch语句一起使用?

1 个答案:

答案 0 :(得分:4)

您拥有的是只读字段,它们不被视为常量值(它们可以由静态构造函数指定)。改为使用常量:

public const byte CONNECT = 100;