在c#中使用新Guid()的实际目的是什么?

时间:2014-04-18 07:41:40

标签: c# asp.net guid

我正在学习C#中的GUID。在阅读时,我遇到过这两件事,比如

1. Guid obj = new Guid();
2. Guid obj = Guid.NewGuid();

我读过,第一个总是16个字节,全部为0.第二个将生成一个具有唯一值的实际GUID。那么新Guid()的实际目的是什么?什么时候使用它?

4 个答案:

答案 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

就像已经说过的那样,它是结构类型,需要有默认值。