当前位置:  开发笔记 > 编程语言 > 正文

为什么struct不能有无参数构造函数

如何解决《为什么struct不能有无参数构造函数》经验,为你挑选了1个好方法。

为什么struct不能有无参数构造函数?为CLR做这件事有什么问题?为什么不允许这样做?请解释一下,因为我不明白.



1> Rauhotz..:

我不能有一个显式的无参数构造函数,只有隐式的构造函数,它将所有成员初始化为默认值.

虽然CLR允许它,但C#不允许结构具有默认的无参数构造函数.原因是,对于值类型,编译器默认情况下既不生成默认构造函数,也不生成对默认构造函数的调用.因此,即使您碰巧定义了默认构造函数,也不会调用它,这只会让您感到困惑.为避免此类问题,C#编译器不允许用户定义默认构造函数.并且因为它不生成默认构造函数,所以在定义字段时无法初始化字段,...

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有