2009-11-06 96 views
0

近日,讀了很多在互聯網的教程後,我注意到,一些開發商跳過在他們的模型類和寫作領域只是去與性能,像這樣:跳繩領域

public class MyClass 
{ 
    public string MyProperty { get; private set; } 
} 

除了編寫更少的代碼之外,做這件事的好處究竟是什麼?雖然我意識到setter是私人的,但是當你不指定你的私人領域時,是不是有某種安全問題?換句話說:這裏最好的做法是什麼?編寫沒有字段和相關屬性的模型類,或者只是使用這些沒有字段的公共屬性?

由於提前,

回答

5

在C以上#3.0中,編譯器會把局部變量到MSIL你。它使代碼更易於閱讀和更易維護(更少的變量來跟蹤等)。

應該沒有安全問題,因爲它在內部它創建本地作用域成員變量。

有關更多信息,請參閱Microsoft's documentation

+0

完美的是,非常感謝Bob。 MS Doc鏈接正是我正在尋找的:)目前正在撰寫一篇報告/評論,我需要源代碼來記錄這一點。 – bomortensen 2009-11-06 01:56:46

1

如果你沒有對變量進行任何操作,只是設置它們並閱讀它們,那麼爲什麼要添加額外的代碼來創建私有變量並執行完整的setter和getter?

C#將創建私有變量,因此字節碼仍然是正確的,但是對於任何讀取您的程序的人來說,它更容易理解正在發生的事情。

只要編譯器中有語法糖,任何時候都可以使代碼更易於閱讀,這是一場勝利。但是,如果您必須執行任何操作(例如檢查該屬性是否在一定範圍內),那麼在C#3中,您仍然需要自行編寫所有其他內容。

最好的做法是按照你在問題中所寫的來寫。