Csharp/C#教程:为什么struct不能有无参数构造函数分享


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

为什么struct不能有无参数构造函数? 为CLR执行此操作有什么问题?为什么不允许这样做? 请解释一下,因为我不明白。

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

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

可以在以下url找到相当合理的解释: http : //en.csharp-online.net/CSharp_FAQ : _Why_must_struct_constructors_have_at_least_one_argument

引用: “.NET公共语言运行时(CLR)不保证将调用无参数构造函数。如果允许结构体具有默认的无参数构造函数,则暗示将始终调用默认构造函数。然而,CLR使没有这样的保证。“

上述就是C#学习教程:为什么struct不能有无参数构造函数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/997995.html

(0)
上一篇 2021年12月26日
下一篇 2021年12月26日

精彩推荐