【问题标题】:Different Types of Readonly Properties [duplicate]不同类型的只读属性 [重复]
【发布时间】:2017-02-02 16:56:06
【问题描述】:

在 C# 6 中,您可以拥有以下属性:

public Uri MyProperty => new Uri();

或者你可以有这个:

public Uri MyProperty1 { get; } = new Uri();

它们有什么区别?

【问题讨论】:

    标签: c# c#-6.0


    【解决方案1】:

    每次访问属性时,第一个返回一个新的Uri 对象 - 第二个初始化属性为一个新的Uri 对象并每次都提供相同的对象。

    【讨论】:

    • 你知道那叫什么吗?我假设它是 6.0 的新功能?
    • 第一个是表达式主体属性 - 第二个是仅 getter 自动属性。两者都是 C# 6.0 的新手。
    • 天哪,为什么会有人想要第一个?我想我更喜欢一种方法
    • @MickyD 当然,一个方法可以做同样的事情。这纯粹是一种风格选择。它更“实用”。
    • 我想是的 :) +1
    【解决方案2】:

    不同的是,这每次都会创建一个Uri的新实例:

    public Uri MyProperty => new Uri();
    

    这将适用于具有指定值的支持字段:

    public Uri MyProperty1 { get; } = new Uri();
    

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 2020-05-03
      • 1970-01-01
      • 2018-12-04
      • 2018-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      相关资源
      最近更新 更多