5

好的,我们听说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

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

4

2 回答 2

6

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

于 2012-06-03T02:03:54.717 回答
1

正如您所指向的答案中所解释的,使用IL,您可以为 a 定义一个无参数的构造函数struct,但在某些情况下它不会被调用。

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

于 2012-06-03T02:06:11.600 回答