当您ToByteArray()在.NET中调用GUID时,结果数组中的字节顺序与GUID的字符串表示形式相比不是您所期望的.例如,对于以下表示为字符串的GUID:
11223344-5566-7788-9900-aabbccddeeff
Run Code Online (Sandbox Code Playgroud)
结果ToByteArray()是这样的:
44, 33, 22, 11, 66, 55, 88, 77, 99, 00, AA, BB, CC, DD, EE, FF
Run Code Online (Sandbox Code Playgroud)
请注意,前四个字节的顺序是相反的.字节4和5也交换,字节6和7交换.但是最后的8个字节的顺序与它们在字符串中表示的顺序相同.
我知道这种情况正在发生.我想知道的是.NET为什么会这样处理它.
use*_*116 31
如果您从GUID构造函数中读取" 示例"部分,您将找到答案:
Guid(1,2,3,new byte[]{0,1,2,3,4,5,6,7})创建一个对应的Guid"00000001-0002-0003-0001-020304050607".
a是一个32位整数,b是一个16位整数,c是一个16位整数,d只是8个字节.
因为a,b和c是整数类型而不是原始字节,所以在选择显示它们时它们会受到字节顺序的影响.在对GUID的(RFC4122)RFC规定,他们应该在big endian格式进行呈现.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           11528 次  |  
        
|   最近记录:  |