作爲後續到this question about prefixes的一種,我同意線程中大多數人的前綴是壞的。但是如果你使用getter和setter,那麼呢?然後,您需要從私有存儲的變量中區分可公開訪問的getter名稱。我通常只使用下劃線,但有沒有更好的方法?如果你正在使用getter和setter,你應該如何命名私有成員變量?
4
A
回答
6
這是一個完全主觀的問題。沒有「更好」的方法。
一種方法是:
private int _x;
public get x():int { return _x; }
public set x(int val):void { _x = val; }
另一個原因是:
private int x;
public get X():int { return x; }
public set X(int val):void { x = val; }
也不是正確的答案。每個人都有風格的優點和缺點。選擇一個你最喜歡的,並一致地應用它。
1
在區分大小寫的語言,我只是用:
private int myValue;
public int MyValue
{
get { return myValue; }
}
否則我會用下劃線
Private _myValue As Integer
Public ReadOnly Property MyValue As Integer
Get
Return _myValue
End Get
End Property
1
有因爲有程序員這樣做這樣做的幾乎一樣多不同的方式,但一些比較流行的方式包括(爲屬性Foo
):
- μF的OO
- m_foo
- _foo
- 富
3
,在Java中this.foo在蟒蛇有self.foo和其他語言有類似的事情,所以我不認爲有必要命名當我已經可以使用一種語言結構時,可以採取特殊的方式。在同樣的情況下,好的IDE和編輯器會理解成員變量並給它們一個特別的亮點,所以你可以真正看到它使用特殊的名字。
6
我喜歡用下劃線爲前綴字段,正如其他人所提到的。
private int _x;
我認爲這超出了直接的個人喜好,但(如大衛·阿諾在這個線程說的)。我認爲這樣做有一些真正的客觀原因:
- 這意味着您不必爲作業(特別是在setters和構造函數中)編寫「this.x = x」。
- 它區分你的領域從您的本地變量/參數。這麼做很重要:與當地人相比,領域處理起來更爲棘手,因爲他們的範圍更廣,壽命更長。添加額外字符對於編碼人員來說是一個精神警告標誌。
- 在某些IDE中,下劃線將導致自動完成將字段排序到建議列表的頂部。這使得更容易在一個塊中查看該類的所有字段。這反過來可能會有所幫助;在大類中,您可能無法在與您正在使用的代碼相同的屏幕上看到字段(通常在類的頂部定義)。將它們排序到頂部可以提供方便的參考。
(這些約定的Java,但對於其他語言也存在類似的)
這些東西看起來小,但他們的患病率絕對會讓當我編碼我的生活更輕鬆。
1
I like writing「this.x = x」。這對我來說很清楚。另外,使用Eclipse時,可以通過這種方式自動生成getter/setter。
相關問題
- 1. 如何在GUI中爲私有變量應用Getter/Setter方法?
- 2. 你如何命名你的變量?
- 3. 我不應該在getter和setter中使用變量變量嗎?
- 4. 爲什麼你在C#getter/setters中使用私有變量?
- 5. 你如何訪問你的實體的getter和setter?
- 6. C#私有變量&java私有變量getter&setter - 區別?
- 7. 你如何找到只有getter和setter的屬性?
- 8. Python中成員變量的Getter和Setter變量
- 9. 解決變量,如果你有方程和變量使用Python
- 10. 應該同時使用getter和setter嗎?
- 11. 如何存儲使用setter和getter在Android的全局變量?
- 12. 你在靜態變量setter方法中使用什麼名字?
- 13. 嘲諷/磕碰類的私有變量,而getter和setter方法
- 14. 使用Lombok @Getter維護變量的命名標準AND @Setter
- 15. 類變量 - AS3 getter和setter
- 16. 你如何在$ _POST中使用變量?
- 17. 你應該如何命名文件名部分?
- 18. 你如何使用命名空間?
- 19. 從eclipse成員中暴露getter和setter
- 20. C++ - 在定義類的成員函數時,內部應該使用成員變量名還是其getter函數?
- 21. 我應該還是不應該使用getter和setter方法?
- 22. 如果你使用數據庫來存儲$ _SESSION和session_set_save_handler,你應該加密嗎?
- 23. 如何在C++中使用私有成員變量和對它們的引用
- 24. 你應該如何使用NUnit 3.2?
- 25. 你應該如何組合類成員的哈希碼?
- 26. 你如何測試你的Request.QueryString []變量?
- 27. Getter和setter變量不起作用
- 28. 什麼名字應該有getter和setter方法
- 29. 如果使用XSLT,你應該如何存儲數據?
- 30. Java。如何正確同步getter和setter?
看起來不錯,但在actionscript(我的主要語言)中,除非是類名或構造函數(您可以,您不這樣做),否則絕不會使用大寫字母來啓動函數或變量。 – Iain 2008-10-03 23:10:13
在這種情況下,我可能會使用_myValue作爲變量,myValue作爲屬性名稱。 – 2008-10-03 23:12:11