我有一些我不明白的 C# 代码:
CliRootCommand _outerCommand = new CliRootCommand
{
new CliCommand("inner")
{
new CliOption<string>("--optionOne"),
new CliOption<string>("--optionTwo")
}
};
有
CliRootCommand _outerCommand = new CliRootCommand
实例化
CliRootCommand
的新实例?如果是,为什么最后不需要 ()
(请注意,即使我添加 ()
,它的工作方式也完全相同)?
第一行后面
{ }
中的内容是做什么的?如果它位于缺失的 ()
内部,那么它将传递一个对象作为 CliRootCommand
构造函数的参数,但情况并非如此
这是一个集合初始值设定项:
集合初始值设定项允许您在初始化实现 IEnumerable 的集合类型时指定一个或多个元素初始值设定项,并且具有具有适当签名的 Add 作为实例方法或扩展方法。
“扩展方法”部分有点酷,但这意味着如果您愿意,您可以将其硬塞到现有的 IEnumerable 类型上来做“有趣”的事情。