GUID你会得到类似aaaef973-d8ce-4c92-95b4-3635bb2d42d5
总是一样的吗?是否总是具有以下格式
8 char“ - ”,4 char“ - ”,4 char“ - ”,4 char“ - ”,12 char
我问,因为我需要将没有“ - ”的GUID转换为带有“ - ”和副签证的GUID。
答案 0 :(得分:25)
没有;还有其他格式,例如您列出的格式,但大括号除外。还有更复杂的格式。以下是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
答案 1 :(得分:4)
你应该简单地依赖它是32个十六进制字符,可以有多种方式来呈现它。查看Wikipedia article以获取更多信息,包括对它们如何编写的说明。
对于您的转化,您应该真正依赖静态Guid.Parse() methods。使用您的示例和icktoofay's answer中的示例混合,这很有效:
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}}");
然后输出带或不带连字符等的方法,你可以使用Guid.ToString()方法和一个已建立的格式代码。
答案 2 :(得分:0)
大多数情况下,GUIDS是32个字符的十六进制字符串,例如{21EC2020-3AEA-1069-A2DD-08002B30309D}
(除非它们在Base-64中编码),并且通常存储为128位整数。但是,它们并不总是有连字符。