GUID

时间:2022-12-01 06:49:59

前言

全局唯一标识符,简称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)