gpt4 book ai didi

c# - C#9 中多条记录的用例是什么?

转载 作者:行者123 更新时间:2023-12-04 03:35:08 25 4
gpt4 key购买 nike

C#9 终于添加了记录!我一直在等待这个,太棒了!但我想知道使用 { get; set; } 记录有什么意义?似乎记录应该是不可变的,并且对它们的所有属性都使用 { get; init; }。也许我太习惯于使用不可变数据,但我不明白可变记录的意义。它似乎增加了代码中错误的可能性。我是否错过了一个非常明显且有用的用例?

最佳答案

首先:record 只是一个快速、简短的符号,用于声明一个类,其中包含一些自动免费添加的有用功能 - 但最终结果仍然是一个与其他类一样的类。它是语法糖,实际上有两种口味。
超短 位置语法 使所有属性 init-only :

record Person(string FirstName, string LastName);
不太短的 名义语法 使开发人员负责为每个属性指定它:
record Person
{
public string FirstName { get; set; }
public string LastName { get; init; }
}
提供这两种表示法的原因可能是没有一刀切。名义语法允许快速创建具有自定义 (im) 可变性的常规类,并且仍然免费获得复制构造函数、克隆、散列和比较/相等。

关于c# - C#9 中多条记录的用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67060547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com