前言
全局唯一标识符,简称GUID(发音为 /ˈɡuːɪd/或/ˈɡwɪd/),是一种由算法生成的唯一标识,通常表示成32个16进制数字(0-9,A-F)组成的字符串,如:{21EC2020-3AEA-1069-A2DD-08002B30309D},它实质上是一个128位长的二进制整数。GUID一词有时也专指微软对UUID标准的实现。(摘自:维基百科)
GUID的主要目的是产生完全唯一的数字。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID的总数也足够大,达到了2128(3.4×1038)个,所以随机生成两个相同GUID的可能性是非常小的,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。
.NET中的GUID
在C#中单独提供了GUID的类。其中今天我们重点来看看ToString(string format)方法:
根据所提供的格式说明符,返回此 Guid 实例值的字符串表示形式(Returns a string representation of the value of this instance in registry format.)。 format 参数可以是“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 |
括在大括号的 4 个十六进制值,其中第 4 个值是 8 个十六进制值的子集(也括在大括号中): {0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} |
举例说明:
1、Guid.NewGuid().ToString("N") 结果为: 38bddf48f43c48588e0d78761eaa1ce6
2、Guid.NewGuid().ToString("D") 结果为: 57d99d89-caab-482a-a0e9-a0a803eed3ba
3、Guid.NewGuid().ToString("B") 结果为: {09f140d5-af72-44ba-a763-c861304b46f8}
4、Guid.NewGuid().ToString("P") 结果为: (778406c2-efff-4262-ab03-70a77d09c2b5)