在我的代码中,我有一个通过网络发送的数据包类,在此数据包结构中,我有一个Type变量,它在数据包中类似于:
[Serializable]
struct Packet
{
Type packetType;
}
然后在客户端/服务器上,我可以通过以下操作反序列化:
if(packet.packetType == typeof(ChatPacket))
{
ChatPacket packet = packet as ChatPacket;
}
这很好,但是我不禁感到System.Type
必须有很大的开销。有人可以阐明这一点吗?
如果这很浪费,那么我可以采用什么更好的方法来处理多个数据包(理想情况下,可以包含在类库Packet
之外的扩展内容。