【问题标题】:why does guid have special formats? [duplicate]为什么 guid 有特殊格式? [复制]
【发布时间】:2011-07-06 14:40:50
【问题描述】:

可能重复:
Why is the GUID structure declared the way it is?

我一直在寻找 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 为我提供了向我解释它的链接。不过感谢您的努力。

标签: .net format guid digits


【解决方案1】:

UUID/GUID 具有根据RFC-4122 的标准表示。更简单的解释here

【讨论】:

  • +1:具体请参见第 3 页。
  • 感谢您的回答,这比我不认为的激进的“完全重复关闭”更具解释性。至少我现在得到了答案。
猜你喜欢
  • 2011-01-17
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 1970-01-01
相关资源
最近更新 更多