我知道问题有点奇怪,我只是出于好奇而问,因为我找不到任何相关信息。另外,请随意编辑标题,我知道它很糟糕,但无法弥补。
假设我有一个对象类型的变量 foo,它要么是短的,要么是 ushort。我需要通过网络发送,所以我使用 BitConverter 将其转换为 byte[]:
byte[] b = new byte[2];
if(foo is short){
BitConverter.GetBytes((short)foo, 0);
}else{
BitConverter.GetBytes((ushort)foo, 0);
}
网络/套接字魔法发生了,我想要我的变量。我知道我期望得到的类型,所以我正确地调用了 BitConverter.GetUInt16 或 GetInt16。
现在,问题是 - 我如何序列化变量真的很重要吗?我的意思是,位是相同的,所以它不应该有任何意义,对吗?这样我就可以
BitConverter.GetBytes((short)foo, 0);
然后做
BitConverter.GetUInt16(myByteArray, 0);
任何人?