2012-06-03 240 views
4

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

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

回答

5

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

+0

这是一样的类,但你可以覆盖它:) – Tarik

+0

正如它承认它只有真正的一半回答这个问题。 –

1

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

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

+1

你可以在我的问题中看到答案。我已经把它连接起来了:) – Tarik