【发布时间】:2015-11-08 13:01:56
【问题描述】:
我编写了自己的类,它将 C# 标准原语转换为字节数组。
后来,我查看了BitConverter 类source,看看专业人士是如何做到的。
我的代码示例:
public static byte[] getBytes(short value) {
byte[] bytes = new byte[2];
bytes[0] = (byte)(value >> 8);
bytes[1] = (byte)value;
return bytes;
}
BitConverter 类代码:
public unsafe static byte[] GetBytes(short value)
{
byte[] bytes = new byte[2];
fixed(byte* b = bytes)
*((short*)b) = value;
return bytes;
}
为什么它们的函数被标记为不安全并使用固定运算符?
即使它们使用不安全,这些函数是否容易出错?我应该放弃我的并使用他们的实现吗?哪个效率更高?
【问题讨论】:
-
这些函数做不同的事情:前者使用大端,后者使用原生端。
标签: c# bytearray primitive bitconverter