我寫了我自己的類,它將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