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

hdo*_*men 2 c# guid

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
Run Code Online (Sandbox Code Playgroud)

这是两种不同的方式来做同样的事情吗?可读性的原因?或者我错过了什么?

Yuv*_*kov 7

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

Guid.Empty只需通过调用默认构造函数缓存默认值:

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