gpt4 book ai didi

c# - 为什么要为初始化器烦恼? (。网)

转载 作者:太空狗 更新时间:2023-10-29 22:08:42 27 4
gpt4 key购买 nike

我有这个:

AudioPlayer player = new AudioPlayer();
player.Directory = vc.Directory;
player.StartTime = vc.StarTime;
player.EndTime = vc.EndTime;

但我可以这样:

AudioPlayer player = new AudioPlayer
{
Directory = vc.Directory,
StartTime = vc.StarTime,
EndTime = vc.EndTime
};

如果我转换为“新的写作方式”,除了不可读性之外我还能得到什么?它会让我更接近 lambda 函数 (=>) 吗?

RAII有关系吗? ?

补充:

一些人回答说,正常初始化可能会使对象处于“无效”状态,例如仅设置一个目录属性后——我在这里的观察是,设计对象的人可能以一种只有值必须是的方式设计它真正进入的是通过真正的构造函数进入的,其他的都可以在以后自由修改。

最佳答案

这么简单的例子,确实收获不大。然而,当你有这个时,它会变得不同:

var player = new AudioPlayer
{
Car = new Car()
{
WheelSize = new Inch(21),
Driver = new Person()
{
Age = 53,
Type = LicenseType.B,
Family =
{
new Person("Jane"),
new Person("Pieter"),
new Person("Anny")
}
}
}
Directory = vc.Directory,
StartTime = vc.StarTime,
EndTime = vc.EndTime
};

尝试用旧方法来做这个。它变得非常丑陋。

关于c# - 为什么要为初始化器烦恼? (。网),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3849853/

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