Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c#中使用新Guid()的实际目的是什么?_C#_Asp.net_Guid - Fatal编程技术网

在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()返回实

我正在学习C#中的GUID。在阅读过程中,我遇到了以下两件事:

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()
由于不够清晰,没有那么大的用处,但是,不可能有一个没有返回全零和空值的无参数构造函数的值类型。