我正在学习C#中的GUID。在阅读时,我遇到过这两件事,比如
1. Guid obj = new Guid();
2. Guid obj = Guid.NewGuid();
我读过,第一个总是16个字节,全部为0.第二个将生成一个具有唯一值的实际GUID。那么新Guid()的实际目的是什么?什么时候使用它?
答案 0 :(得分:1)
Guid
是一种值类型。对于所有值类型new T()
,编译器接受T
,其含义与default(T)
完全相同。即使default(T)
是此特定类型的无意义值,值类型也无法阻止此操作。
因此,要回答您的问题,new Guid()
是不允许的,因为它很有用,仅出于技术原因这是允许的。你不应该使用它。如果您真的想要全零Guid
,则default(Guid)
或Guid.Empty
的可读性要好得多。
答案 1 :(得分:0)
那么新Guid()的实际目的是什么;?
new Guid()
将用于通过调用构造函数初始化Guid
对象。
NewGuid()
结构中有一个静态方法GUID
,它会通过调用GUID
Guid.NewGuid()
答案 2 :(得分:0)
我想目的不是无参数构造函数,但构造函数重载了现有的GUID。
在某些情况下,您需要一个无参数化构造函数,例如反序列化。
答案 3 :(得分:0)
您可以在此处查看GUID实现:
http://referencesource.microsoft.com/#mscorlib/system/guid.cs#b622ef5f6b76c10a
就像已经说过的那样,它是结构类型,需要有默认值。