我有一些不懂的C#代码:

        CliRootCommand _outerCommand = new CliRootCommand
        {
            new CliCommand("inner")
            {
                new CliOption<string>("--optionOne"),
                new CliOption<string>("--optionTwo")
            }
        };
  1. 会吗?

    CliRootCommand _outerCommand = new CliRootCommand
    

    实例化CliRootCommand的新实例?如果是的话,为何不加()(请注意,即使我加()也是一样的)?

  2. 第一行之后的{ }行中的内容是做什么的?如果它在缺失的()中,则它将传递一个对象作为CliRootCommand的构造函数的参数,但情况并非如此

推荐答案

这里有很多东西要整理

  • CliRootCommand和CliCommand都支持collection initialization
  • 使用初始值设定项时,如果使用默认的构造函数,则可以省略构造函数的方括号.

Csharp相关问答推荐

在依赖性注入和继承之间进行 Select

ASP.NET MVC购物车数量更新并从购物车中删除项目

MongoDB将JS查询转换为C#的问题

如何在NServicebus中配置学习传输的文件夹(NService bus 8)

Azure Redis缓存与Entra ID身份验证

只有第一个LINQ.Count()语句有效

将现有字段映射到EFCore中的复杂类型

使用预定义对象减少Task.Run/Factory.StartNew中的关闭开销

共享暂存/生产环境中Azure事件中心的建议配置

我的MRG32k3a算法实现返回的数字超出了预期的[0,1]范围

Polly重试URL复制值

RabbitMQ群集的MassTransit配置问题

JsonPath在Newtonsoft.Json';S实现中的赋值

如何将默认区域性更改为fr-FR而不是en-US?

我应该为C#12中的主构造函数参数创建私有属性吗?

使用可空引用类型时C#接口实现错误

在使用.NET EF Core DbContext属性之前,是否应使用null判断

SqlException:无法打开数据库.升级到Dotnet 8后-数据库兼容性版本-非EFCore兼容性级别

游戏对象走向不同的方向

将带有嵌套If-Else的Foreach循环转换为Linq表达式