2
我開始了新的工作一對夫婦前使用C#周的(事情我已經基本上開始學習-since-在那裏),我已經看到一對夫婦的做事方式,我很好奇,爲什麼(看到,因爲我傾向於清新,他們都拿起東西在過去幾年。)
基本上,我試圖找出原因:
private int i;
優於:
private int I {get;set;}
如果答案是(我懷疑),額外的IL生成用於調用GET /套,那麼爲什麼做autoimplemented獲得/套都存在嗎?爲什麼遜於
public int i;
:
public int I{get;set;}
更奇怪的是,別的我爲什麼不只是總是使用性質,或者爲什麼我不會避免autoimplemented方法,如瘟疫,一個或另一個。
我知道這聽起來像是一個邏輯問題,當我想到它時,卻沒有那麼多,所以我希望它寫出某種意義。
感謝
一般情況下,你會* *經常使用性能。我認爲這是你的問題的答案,或者至少是你應該尋求的答案。至於它們爲什麼存在,考慮到這些屬性是在私有字段的引擎下實現的,所以爲了使屬性正常工作,私有字段*需要被支持。因此,刪除此功能將不會有多大意義。此外,自動屬性(在問題中顯示的簡寫語法)不是直到後來才爲C#發明的,因此,不久前,程序員不得不手動編寫所有後備字段。 – 2012-02-17 21:52:10
你使用屬性的原因是(你的'int I {get; set;}')是因爲屬性是你希望外界看到你的類的方式。 私人財產本質上是無用的。 您想使用公共屬性而不是公共字段的原因主要是風格,不僅適用於您,也適用於使用反射的任何程序。 – 2012-02-17 21:53:07
這已經回答 [這裏] [1] [1]:http://stackoverflow.com/questions/3035790/purpose-of-getters-and-setters – 2012-02-17 21:55:41