質問が少し奇妙であることは知っています。関連する情報が見つからなかったので、純粋な好奇心から尋ねています。また、お気軽にタイトルを編集してください。ひどいことは承知していますが、これ以上改善することはできませんでした。
short または ushort の object 型の変数 foo があるとします。ネットワーク経由で送信する必要があるため、BitConverter を使用してバイト [] に変換します。
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);
誰?