【发布时间】:2018-02-03 23:08:12
【问题描述】:
如何简化对象初始值设定项中的条件语句,使代码更具可读性?如果 addNew 为真,则将新项添加到字典中,否则它将只有一项。
...
var channel = new ChannelConf {
Name = "Abc"
Headers = !addNew ? new Dictionary<string, string>
{
[Constants.Key1] = Id
}
: new Dictionary<string, string>
{
[Constants.Key1] = Id,
[Constants.Key2] = Port
}
}
...
【问题讨论】:
-
可能想用标签来识别语言。
-
你可能会想到使用构造函数重载
new ChannelConf(bool addNew) -
not 在初始化器中使用条件语句怎么样?
if (addNew) { channel.Headers.Add(Constants.Key2, Port); }初始化后是一个巨大的改进。请记住,初始化器只是事后属性分配的简写。你不会因为把所有东西都挤在一个街区里而获得奖励。
标签: c# object initializer