好的,我们听说struct
不能有一个默认的无参数构造函数,这很好(http://stackoverflow.com/questions/333829/why-cant-i-define-a-default-constructor-for -a-结构式网)。但文档说“每个值类型都有一个隐式默认构造函数,用于初始化该类型的默认值。”来自http://msdn.microsoft.com/en-us/library/s1ax56ch.aspx
现在隐式默认构造函数和无参数默认构造函数之间有什么区别?
答案 0 :(得分:5)
隐式默认构造函数是无参数构造函数,它由编译器自动创建。您无法创建无参数构造函数的原因是因为默认构造函数已存在。我不知道为什么他们选择这样做,以及为什么你不允许覆盖它。
答案 1 :(得分:1)
正如您在回答中所解释的那样,使用IL,您可以为struct
定义无参数构造函数,但有些情况下不会调用它。
恕我直言,“隐式”构造函数只是一个逻辑构造函数;分配时内存被归零所暗示。