是否存在您希望公開只讀字段v.s.一個只能自動實現的屬性?公共只讀字段v.s.只能獲得財產
public class Foo
{
public readonly string Hello;
public string Hello2 { get; }
}
都只能在構造函數中進行設置並且都提供課堂外的只讀訪問。我有點累,所以我可能失去了一些東西。
是否存在您希望公開只讀字段v.s.一個只能自動實現的屬性?公共只讀字段v.s.只能獲得財產
public class Foo
{
public readonly string Hello;
public string Hello2 { get; }
}
都只能在構造函數中進行設置並且都提供課堂外的只讀訪問。我有點累,所以我可能失去了一些東西。
原因之一是數據綁定 - .net實現綁定到屬性,但不綁定到公共字段。
一些討論在這裏:Why can't we use public fields for data binding in C#?
使其成爲一個屬性,而不是一個字段意味着它可以在接口上使用。
確切的實現(雖然自動屬性並沒有太多的實現...)也被抽象出來,所以你可以在將來基於字段的組合而不會破壞(編譯)兼容性。
很好的例子謝謝,我知道有一些明顯的我在這裏失蹤。我想知道的上下文是默認的asp.net核心模板中的Startup.cs,有趣的是Startup沒有實現一個接口,但可能該屬性被用作別處的鉤子。 –
我真的想把你的和PaulF的標記作爲答案,因爲他們都有道理,他稍微早一些,但如果我能的話,我也會標記你的! –
謝謝保羅,很好的例子。 –