真正解决c# sbyte转byte及java与c#byte转换的方法
warning:
这篇文章距离上次修改已过566天,其中的内容可能已经有所变动。
在把java某个网络模块转换成.net时发现个奇怪的问题,在java里byte[] b={-22,11,22,-55} ; 移植到.net里发现报错,查了资料说两者取值范围不一样,且.net里的byte是无符号整数,可以用sbyte 替换。 于是兴奋的换成sbyte后果然可以,且没报错。但问题又来了, sbyte在编码函数中不能直接使用,怎么转换呢? 虽然根据他们的定义,确定取值范围后可以写个function来处理转换,但太麻烦了吧。百度没找到答案,google果然找到,一行代码解决!
sbyte[] bytesAll0 = new sbyte[] { 11, 72, -122, -9, 12, };
byte[] dest = Array.ConvertAll(bytesAll0, (a) => (byte)a);
byte[] arrayOfByte = new byte['\u00A5'];
评论已关闭