2010-12-15 61 views
0

某人的私有成員的任何建議的命名約定喜歡用M * ,有人喜歡用_ *,有沒有這種指引任何?是否有類

+0

我個人不喜歡命名這個約定,並使用調用約定而不是,確保把'this.'引用時,成員變量。 – 2010-12-15 15:02:14

+0

@Jeff:我同意,使用'this.'是一種很好的編碼習慣。 :) – Mehrdad 2010-12-15 15:04:00

+0

@Jeff,Lambert - Reshaper建議從任何變量中刪除多餘的這個。任何想法爲什麼?我是否應該爲了某種充分理由而重寫該建議? – 2010-12-15 15:14:54

回答

5

我傳統上使用的是帶有下劃線的前綴(例如,_firstName),但越來越多我將移動到automatic properties b/c有更少的代碼混亂和9次10我不需要私人領域。

public string Firstname { get; set; } 
+0

直到看到這個答案,我從來都不會'得到'自動屬性是有用的。我只在接口中使用它們來聲明實現類應該實現哪些屬性,但仍然在類中使用了private _ *變量和訪問器屬性。 +1使我的代碼整潔! – 2010-12-15 15:12:09

+0

他們的主要原因是,如果它們變成常規屬性,它們不會破壞現有的編譯代碼 - 但將變量轉換爲屬性確實會破壞代碼。 – Mehrdad 2010-12-15 16:49:33

1

像你說的,這是一個慣例。我相信來自C++背景的人經常使用m_ *表示法,但我自己更喜歡_ *表示法。雖然沒有固定的規則,一致性是關鍵。我始終遵循的一條規則是確保使用this指針。

0

Microsoft的建議是使用下面的引號:_myField

但即使他不遵守該公約。

就我個人而言,我使用領先的undrscore,這樣我就不必使用this.來限定我的變量名稱,並且因爲它們更易於區別於爭論。

+0

如果您有一個局部變量或參數在範圍中具有相同的名稱,您只需要限定變量名稱。這通常用於構造函數或Java中的屬性設置器。 – 2010-12-15 15:06:02

3

是的,有解決這個指導方針。如果是獨立軟件開發商,您經常會在您工作的公司中至少找到一個。有時不止一個。機會不會一直遵守,除非你有一個良好的代碼審查制度,並且每個人都徹底瞭解命名慣例。

有這個沒有一個標準命名慣例 - 僅僅是因爲沒有爲私人成員,他們爲公衆成員做的方式存在的worldlwide公約的好處。

如果我必須使用庫從5家不同的公司來說,這真的,真的幫助我,如果他們在命名類型,方法,甚至參數方面是一致的。我並不在乎他們爲他們的私人成員使用的命名約定:基本上,任何事情都可以讓他們儘可能有效地編寫代碼。

就個人而言,我不會使用任何種類的私人變量前綴...但我曾在使用_的公司工作,並且我曾在使用m_s_的公司工作。