【问题标题】:new() usage in methods for C#C# 方法中的 new() 用法
【发布时间】:2023-02-08 22:14:10
【问题描述】:

将 new() 分配给方法时到底意味着什么? 我发现了一些在方法调用中看到新用法的例子,但不像下面这样。

public ObservableCollection<Customer> Customers { get; } = new();

【问题讨论】:

  • 这是new ObservableCollection<Customer>() 的快捷方式。
  • “将 new() 分配给方法”是什么意思?哪个方法你认为这里有牵连吗?

标签: c#


【解决方案1】:

这是 target-typed new expression(在 C# 9 中引入)并且等效于:

public ObservableCollection<Customer> Customers { get; } = new ObservableCollection<Customer>();

【讨论】:

    【解决方案2】:

    它是target-typed new,本质上它将创建一个对象,无论操作数的左边是什么。

    对于自动属性,它将为该属性分配该属性类型的新实例。

    所以如果我们去掉所有的语法糖,你基本上得到的是:

    private ObservableCollection<Customer> _customers = new ObservableCollection<Customer>();
    
    public ObservableCollection<Customer> Customers
    {
        get
        {
            return _customers;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-24
      • 1970-01-01
      • 2016-11-19
      • 2017-04-20
      相关资源
      最近更新 更多