2012-02-02 15 views
0

我看到在它的數據類型寫的舊程式碼的變量:你使用什麼分類變量?

double dblMyVar; 
int intYourVar; 
String strTheirVar; 

但是,如今,它似乎是老式的。這種方法的優點是你可以即時看到某個變量的類型。但我不喜歡長變量名稱。每當我我能說出我在一個單一的字符變量,如:

private Product p = new Product(); 

沒有命名變量現代化的「良好做法」或約定?你/你的公司使用什麼?

+0

每種語言/框架往往都有它自己的約定。例如,[Java](http://www.oracle.com/technetwork/java/codeconv-138413.html)和[.NET](http://msdn.microsoft.com/zh-cn/library/ms229042的.aspx)。 – LukeH 2012-02-02 12:21:42

回答

1
// class member only if needed 
private Product product; 
// instantiates before using it 
product = new Product(); 

在名稱中聲明變量類型非常沒用,因爲IDE會在鼠標懸停時向您顯示其類型。但是,對於其他開發人員(特別是如果您有大量變量)使用單個字符名稱可能會讓人感到困惑,並且違背了自我記錄原則。

+0

這是一個很好的觀點,但是,特別是當你進行持久化時(當你必須在屬性和表格中重複字段名稱時),長名稱對代碼來說可能會更慢並且無聊。 – Alex 2012-02-02 12:34:05

+0

@darth_alexious這取決於你如何做你的持久性。這可能是一個有效的觀點,即使對於我來說記住'var s'或'var something'是一樣的,但是如果你使用Hibernate/JPA /任何其他的東西,它幾乎沒有區別。 – Marcelo 2012-02-02 12:41:19

+0

的確如此。我必須在我的項目中使用Hibernate,但同時,它太小而不值得。 – Alex 2012-02-02 12:45:46

0

y_xName,對於local/member/parameter/static,y是l/m/p/s。 x可以是int,f是float,p是指針等等。也許sp是共享指針。對於大多數類型的對象/引用,很少有任何東西。我更喜歡代碼是自我解釋的,因此沒有像「 p「或」m_p「。說出它是什麼。如果它是一個簡短的代碼片段,它實際上只是一種通用的「產品」,我可能會將其命名爲l_Product。即使你試圖保持76(?)個字符的線寬,在合適的位置打破線條,然後縮進可以使它看起來沒問題,並且你仍然可以從冗長的名字中看到什麼是實際發生。

那麼這只是我對其採取..

+0

是的,的確如此。我覺得有點無聊,使用像「PreparedStatement preparedStatement = connection.prepareStatement(sql);」並隨時隨地使用[preparedStatement] ...我更喜歡p或pst之類的anithing,也使它更易讀... – Alex 2012-02-02 12:52:16

1

這個符號被稱爲「匈牙利」,並通過微軟推廣,使用它,如果你的作品:http://en.wikipedia.org/wiki/Hungarian_notation

+0

太棒了!我不知道這種做法有背後的歷史和理論......非常有趣...... – Alex 2012-02-02 12:43:01

0

你應該使用「單個字母變量」唯一的時間是很短的一段代碼中,例如「foreach(var i in item)」或「using(var p = new Product())」。當然,這可以歸結爲您自己的偏好,但Visual Studio中有一個非常漂亮的小插件叫做StyleCop。它幾乎涵蓋了所有的樣式檢查,並且與ReSharper配合使用,它可以實時進行,甚至爲您解決問題。

1

這取決於語言。

關於C#:

  • 由於這是一個強類型語言,添加變量的類型作爲變量(匈牙利命名法)的名稱的前綴,不建議了(太冗長和冗餘信息)
  • 開始的變量名是公開的以大寫字母是一個約定(比如MyVariable):帕斯卡情況下
  • 開始的變量名是私人用小寫(或下劃線那麼小寫)是也是一個慣例。使用下劃線或不是個人偏好的問題(例如:_myVariablemyVariable):駱駝情況
  • 命名臨時變量(諸如在用於循環的變量)與單個字母(ijz ...)通常是可以的,如果使用限於一個小範圍。

但這都是關於個人喜好。

在MSDN上編輯:General Naming Conventions

相關問題