2016-10-14 99 views
8

是否存在您希望公開只讀字段v.s.一個只能自動實現的屬性?公共只讀字段v.s.只能獲得財產

public class Foo 
{ 
    public readonly string Hello; 

    public string Hello2 { get; } 
} 

都只能在構造函數中進行設置並且都提供課堂外的只讀訪問。我有點累,所以我可能失去了一些東西。

回答

7

使其成爲一個屬性,而不是一個字段意味着它可以在接口上使用。

確切的實現(雖然自動屬性並沒有太多的實現...)也被抽象出來,所以你可以在將來基於字段的組合而不會破壞(編譯)兼容性。

+0

很好的例子謝謝,我知道有一些明顯的我在這裏失蹤。我想知道的上下文是默認的asp.net核心模板中的Startup.cs,有趣的是Startup沒有實現一個接口,但可能該屬性被用作別處的鉤子。 –

+1

我真的想把你的和PaulF的標記作爲答案,因爲他們都有道理,他稍微早一些,但如果我能的話,我也會標記你的! –