struct Mutable {
    private int x;
    public Mutable() { }  //Compiler Error CS0171

}

所以,如果我为一个 struct 声明一个构造函数,它说所有的字段都必须赋值,但我在想,为什么内联初始化器不能直接将字段值默认为它们的缺省值呢?
我的意思是,当没有指定构造函数时,内联初始值设定项确实将字段的值默认为它们的缺省值.

推荐答案

实际上它可以,但它计划在下一个语言版本-C#11中使用.从docs:

自动缺省 struct

作为执行构造函数的一部分,C#11编译器确保将struct类型的所有字段初始化为其缺省值.此更改意味着任何未由构造函数初始化的字段或自动属性都将由编译器自动初始化.构造函数没有明确分配所有字段的 struct 现在被编译,并且任何未显式初始化的字段都被设置为其缺省值.您可以在structs上的文章中阅读有关此更改如何影响 struct 初始化的更多信息.

阅读更多内容:

Csharp相关问答推荐

如何在C#中从正则表达式中匹配一些数字但排除一些常量(也是数字)

注册所有IMediatR类

从ASP.NET Core中的枚举字段填充 Select 选项时,将默认的第一个选项添加为 Select 元素

MS Graph v5.42.0:在寻呼消息时更改页面大小

如何使用C#获取FireStore中的列表输出文档

net中从位图获取坐标和绘制折线

在C#中,非静态接口方法的抽象和虚拟是冗余的吗?

在C#.NET项目中启动时,如何等待提升的PowerShell进程退出?

为什么此名称不再被识别?名称不存在于当前上下文中?

使用switch 类型模式时出现奇怪的编译器行为

用于获取字符串的最后12个字符的正则表达式(空格除外)

从GRPC连接创建ZipArchive

在.NET Maui中,Flyoutindow/Hamburger菜单可以在shell 之外实现吗?

将两个for循环更改为一条LINQ语句

Unity 3D-意外轴捕捉和未知力对脉冲react 行为的影响

CsvHelper在第二次迭代时抛出System.ObjectDisposedException

定义可以是两个类之一的类成员

如何为RichTextBox中的特定文本上色?

如何从哈希表中获取列表字符串?

关闭对终端的Azure功能主机轮询