【发布时间】:2011-07-06 14:40:50
【问题描述】:
我一直在寻找 GUID 的生成和处理方法,想知道为什么微软决定使用这些“奇怪”的格式。
单个格式说明符,指示如何格式化此 Guid 的值。格式参数可以是“N”、“D”、“B”、“P”或“X”。如果 format 为 null 或空字符串 (""),则使用 "D"。
说什么?
格式标志如下:
N:32 位 = 00000000000000000000000000000000
D:由连字符分隔的 32 位数字 = 00000000-0000-0000-0000-000000000000
B:用连字符分隔的 32 位数字,用大括号括起来 = {00000000-0000-0000-0000-000000000000}
P:用连字符分隔的 32 位数字,用括号括起来 = (00000000-0000-0000-0000-000000000000)
X:用大括号括起来的四个十六进制值,其中第四个 值是八个十六进制的子集 也包含在大括号中的值 = {0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}
为什么???
为什么不是 00000000-00000000-00000000-00000000
或 0000-0000-0000-0000-0000-0000-0000-0000 ??
除了微软,还有谁有好的答案吗? :o)
【问题讨论】:
-
“它是微软”甚至不是一个好的答案,因为 GUID 只是微软对 UUID 标准(通用唯一标识符)的实现,它定义了相同的格式。 en.wikipedia.org/wiki/Universally_Unique_Identifier
-
道歉,“关闭”手指抽搐,不是那个问题的重复。
-
顺便说一句,我以前不知道 guid 实际上有关联的格式字符串。这是否意味着
Guid.Parse或其他类似工具可以使用 guid 反向接收格式字符串,而不是在转换之前手动将连字符等插入字符串? |也希望我能投票不关闭,所以我能做的最好的就是 +1。 -
谢谢大家,它并没有真正回答我最初的问题:不同格式是怎么回事,但@loan 为我提供了向我解释它的链接。不过感谢您的努力。