在c#中使用新Guid()的实际目的是什么?
我正在学习C#中的GUID。在阅读过程中,我遇到了以下两件事:在c#中使用新Guid()的实际目的是什么?,c#,asp.net,guid,C#,Asp.net,Guid,我正在学习C#中的GUID。在阅读过程中,我遇到了以下两件事: 1. Guid obj = new Guid(); 2. Guid obj = Guid.NewGuid(); 我读到,第一个总是16字节,全部为0。第二个将生成具有唯一值的实际GUID。那么新Guid()的实际用途是什么;?什么时候使用它 那么新Guid()的实际用途是什么 new Guid()将通过调用构造函数来初始化Guid对象 在GUID结构中有一个静态方法NewGuid(),它将通过调用GUID.NewGuid()返回实
1. Guid obj = new Guid();
2. Guid obj = Guid.NewGuid();
我读到,第一个总是16字节,全部为0。第二个将生成具有唯一值的实际GUID。那么新Guid()的实际用途是什么;?什么时候使用它
那么新Guid()的实际用途是什么
new Guid()
将通过调用构造函数来初始化Guid
对象
在
GUID
结构中有一个静态方法NewGuid()
,它将通过调用GUID.NewGuid()
返回实际的GUID
,我想它的目的不是无参数构造函数,而是构造函数使用现有的GUID进行重载
在某些情况下,您还需要一个无参数构造函数,如用于反序列化的构造函数。
Guid
是一种值类型。编译器接受所有值类型T
的new T()
,其含义与default(T)
完全相同。即使default(T)
是此特定类型的无意义值,值类型也无法阻止此操作
因此,为了回答您的问题,
new Guid()
是不允许的,因为它很有用,只允许出于技术原因。你不应该用它。如果您确实想要一个全零的Guid
,默认(Guid)
或Guid.Empty
更易于阅读。您可以在此处查看Guid实现:
如前所述,它是结构类型,需要有默认值。这是重复的。那么何时使用新Guid();?有人能给出这个问题的答案吗?Guid()
是一个默认构造函数,因为它不带任何参数,它会给出默认值,即Guid。Empty
@thevan From:总之,new Guid()
由于不够清晰,没有那么大的用处,但是,不可能有一个没有返回全零和空值的无参数构造函数的值类型。