GUID的格式是否总是相同的?

本文关键字:格式 是否 GUID | 更新日期: 2023-09-27 18:11:23

GUID为aaaef973-d8ce-4c92-95b4-3635bb2d42d5

总是相同的吗?它是否总是有以下格式

8字符"-",4字符"-",4字符"-",4字符"-",12个字符

我问,因为我需要转换GUID没有"-"到GUID与"-"和副签证。

GUID的格式是否总是相同的?

不;还有其他格式,例如您列出的格式,只是用大括号括起来。还有更复杂的格式。以下是MSDN列表中的一些格式:

UUID格式
  • 32位:00000000000000000000000000000000 (N)
  • 32位用连字符分隔的数字:00000000-0000-0000-0000-000000000000 (D)
  • 32位数字,用连字符分隔,用大括号括起来:{00000000-0000-0000-0000-000000000000} (B)
  • 32位数字,用连字符分隔,用圆括号括起来:(00000000-0000-0000-0000-000000000000) (P)
  • 用大括号括起来的四个十六进制值,其中第四个值是同样用大括号括起来的八个十六进制值的子集:{0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} (X)

msdn

您应该简单地依赖它是32个十六进制字符,可以有多种方式来表示它。查看维基百科文章获取更多信息,包括如何编写它们的描述。

对于您的转换,您应该真正依赖于静态的guide . parse()方法。把你的例子和icktoofay的答案结合起来,效果很好:
        var z = Guid.Parse("aaaef973-d8ce-4c92-95b4-3635bb2d42d5");
        z = Guid.Parse("{aaaef973-d8ce-4c92-95b4-3635bb2d42d5}");
        z = Guid.Parse("{0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}");

,然后输出带有或不带有连字符等,您可以使用guide . tostring()方法与已建立的格式代码之一。

大多数情况下,GUIDS是32个字符的十六进制字符串,例如{21EC2020-3AEA-1069-A2DD-08002B30309D}(除非它们是以Base-64编码的),并且通常存储为128位整数。不过,它们并不总是带有连字符。