我正在开发一种需要尽可能低带宽的网络协议。因此,我决定不使用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语句一起使用?
答案 0 :(得分:4)
您拥有的是只读字段,它们不被视为常量值(它们可以由静态构造函数指定)。改为使用常量:
public const byte CONNECT = 100;