如何在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
而不是使用变量。它表示:需要一个常量值,而您使用的是只读值,这两个值不相同