c# - 为什么无参数的 Guid 构造函数会生成一个空的 GUID?

标签 c# .net guid default-constructor

为什么无参数 Guid 构造函数生成一个空 GUID,而不是像 Guid.NewGuid() 那样默认生成一个?

空 Guid 是否有特殊用途?

最佳答案

Why does the parameterless Guid constructor generate an empty GUID rather than default to a generated one as with Guid.NewGuid()?

简短回答:因为语言/运行时没有让 Guid 类型的设计者定义默认构造函数。

“默认构造”结构的值为零不仅是约定俗成的,而且您根本无法为结构定义默认构造函数。当您说 new Guid() 时,运行时会为您提供一个新对象,其中所有字段都被初始化为其默认值:http://msdn.microsoft.com/en-us/library/ah19swz4%28VS.71%29.aspx

可以在这里找到一些基本原理:https://web.archive.org/web/20131102220804/http://www.yoda.arachsys.com/csharp/faq/#struct.constructors

关于c# - 为什么无参数的 Guid 构造函数会生成一个空的 GUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/401198/

相关文章:

c# - xUnit 测试类内部

.net - 如何为 WinForms 应用程序和 SQL Server 实现 SSO(单点登录)

c# - 有没有办法在 .NET 中唯一标识连接到 Windows PC 的任何存储介质?

wix - 当键路径是RegistryKey/Value时,Wix使用哪些元素自动生成ComponentId guid

c# - 如何处理为数据表分配数据行时的空值

c# - 在 ASP.net MVC 5 服务器或客户端中缓存的位置

c# - Web API 请求对象中的强类型和任意属性

c# - 最快的 C# 输出解析器生成器工具是什么?

sqlite - 为什么servicestack ormlite将有效的Guid值保存为NULL到SqLite数据库?

WiX:石蜡和存储库/构建服务器集成