我写了我自己的类,它将C#标准原语转换为字节数组。GetBytes函数如何工作?
后来,我看了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;
}
为什么它们的功能标记为不安全的,使用固定运营商?
即使他们使用不安全,这些功能是否容易出错?我应该放弃我的使用他们的实施?哪个更有效率?
这些函数做不同的事情:前者使用大端,后者是本地端。 – CodesInChaos