等效 new Guid() 和 Guid.Empty 的目的

Purpose of equivalent new Guid() and Guid.Empty

new Guid()Guid.Empty 产生相同的结果(全 0 guid (00000000-0000-0000-0000-000000000000).

var guid = new Guid();
Console.WriteLine(guid);//00000000-0000-0000-0000-000000000000
var emptyGuid = Guid.Empty;
Console.WriteLine(emptyGuid);//00000000-0000-0000-0000-000000000000

这是做同一件事的两种不同方式吗?可读性原因?或者我遗漏了什么?

Guid 是一个 struct。所有结构都有一个隐式默认构造函数,它将所有成员初始化为其默认值。在 Guid 中,您看到将其所有复合成员设置为 0

Guid.Empty simply caches the default value 通过调用默认构造函数:

public struct Guid : IFormattable, IComparable, IComparable<Guid>, IEquatable<Guid>
{
    public static readonly Guid Empty = new Guid();
}