如何在C#中使用字节常量作为开关大小写?

如何在C#中使用字节常量作为开关大小写?,c#,switch-statement,byte,C#,Switch Statement,Byte,我正在开发一种需要尽可能低带宽的网络协议。因此,我决定,对于每种消息类型,例如“connect”、“move”或“disconnect”,最好使用字节,而不是使用字符串的头 以下是我到目前为止的一个片段: // Message types public static readonly byte CONNECT = 100; public static readonly byte MOVE = 101; public static readonly byte DISCONNECT = 102;

我正在开发一种需要尽可能低带宽的网络协议。因此,我决定,对于每种消息类型,例如
“connect”
“move”
“disconnect”
,最好使用
字节,而不是使用
字符串的头

以下是我到目前为止的一个片段:

// 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似乎不喜欢我使用字节常量这一事实,具体的错误消息是
需要一个常量值


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

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

public const byte CONNECT = 100;

public const byte CONNECT=100您拥有的是只读字段,这些字段不被视为常量值(它们可以由静态构造函数指定)。请改用常量:

public const byte CONNECT = 100;

public const byte CONNECT=100
如果您在开关中使用
100
101
102
而不是使用变量,则可能是这样。它表示:需要一个常量值,并且您使用的是只读值,如果您使用
100
,这两个值可能不同,开关中的
101
102
而不是使用变量。它表示:需要一个常量值,而您使用的是只读值,这两个值不相同