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

时间:2012-06-03 01:56:18

标签: c# .net

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

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

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