GUID
(全局唯一标识符)是一个128位的数字,通常用来唯一标识信息。GUID 的生成算法保证了在相同的时空条件下,基本上不会生成重复的值。这是因为GUID的生成算法结合了多种不同的信息,包括时间戳、计算机的 MAC 地址、随机数等,从而大大降低了生成重复值的可能性。
具体来说,通常情况下,GUID 包含了以下信息:
综合上述因素,GUID 的生成算法确保了在现实应用中,生成重复值的可能性极低,接近于零。当然,并不是绝对不会出现重复值,这种情况的概率极小,但是并不是完全不可能。
因此,通过合理设计的生成算法,GUID 能够在大多数情况下确保唯一性,这也使得它成为在分布式系统中用来唯一标识信息的一种常见选择。
用例
using System;
public class MyClass
{
public Guid UniqueId { get; }
public MyClass()
{
UniqueId = Guid.NewGuid();
}
}
class Program
{
static void Main()
{
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
Console.WriteLine("obj1 UniqueId: " + obj1.UniqueId);
Console.WriteLine("obj2 UniqueId: " + obj2.UniqueId);
}
}
Tips
Guid 结构体的未初始化时,默认值是 Guid.Empty,这个属性表示一个空的 Guid,其值为全零(即所有位都为零)
using System;
class Program
{
static void Main()
{
Guid uninitializedGuid;
Console.WriteLine("未初始化的 Guid 值为:" + uninitializedGuid);
Console.WriteLine("是否为默认值 Guid.Empty: " + (uninitializedGuid == Guid.Empty));
}
}