结构隐式默认构造函数与无参数构造函数

本文关键字:构造函数 参数 默认 结构 | 更新日期: 2023-09-27 18:36:04

好的,我们听说struct不能有一个默认的无参数构造函数,这很好(http://stackoverflow.com/questions/333829/why-cant-i-define-a-default-constructor-for-a-struct-in-net)。但文档说"每个值类型都有一个隐式默认构造函数,用于初始化该类型的默认值 http://msdn.microsoft.com/en-us/library/s1ax56ch.aspx。

隐式默认构造函数和无参数默认构造函数现在有什么区别?

结构隐式默认构造函数与无参数构造函数

隐式默认构造函数是由编译器自动创建的无参数构造函数。 无法创建无参数构造函数的原因是默认构造函数已存在。 我不知道他们为什么选择这样做,为什么不允许你覆盖它。

如您所指出的答案中所述,使用 IL,您可以为 struct 定义无参数构造函数,但在某些情况下不会调用它。

恕我直言,"隐式"构造函数只是一个逻辑构造函数;暗示的是内存在分配时被清零。