2013-12-12 107 views
-1

我讀過很多意見,公共領域是邪惡的,公共性是由設計爲大衆,我們可以用getter和setter方法等公共領域邪惡如果只讀?

我的理解是做超級偉大的事情,雖然很小,只讀字段是一個性能受到影響(並且與性能或不相關,我知道FXCop和Resharper都提示我儘可能使用readonly)。

我知道我們不能在.NET中具有隻讀屬性,但是,只讀public字段仍然是邪惡的?

+2

「我知道我們不能在.NET中擁有隻讀屬性」 - 以什麼方式?你可以有一個財產沒有一個setter ... –

+0

@JonSkeet,你是​​說'公共字符串{{...} ...'被視爲'私人只讀字符串s'相同的方式?如果是這樣,我只是刪除我的問題 – Dave

+2

那麼這不是有效的代碼開始。但是你可以擁有'private只讀字符串名稱;公共字符串名稱{get {return name; }}'這是readonly字段支持的只讀屬性。 –

回答

2

公共領域是邪惡的原因之一是,如果100個其他程序集針對該字段進行編譯,然後您決定將其替換爲公共屬性(以包含驗證等),則所有這些程序集都必須也要重新編譯。

因此,該字段是否只讀是真的沒關係 - 公共字段仍然是邪惡的。