2010-10-25 22 views
4

我完全同意我們不應該使用匈牙利符號來命名變量。但是匈牙利符號似乎對命名控件(特別是Winform控件)仍然有用。考慮這些:您是否使用匈牙利符號來表示控件名稱?

GridView grvUsers 
TextBox txtPassword 

等等

我真的很懷疑,我們應該避免匈牙利命名法在這種情況下?如果應該,這是名稱控制的替代解決方案?

+0

你對孩子使用聖經的名字嗎?這本質上是同一個問題。 – 2011-04-11 19:18:08

+0

@ vimvq1987:對不起,我無法幫你... :(:( – 2012-10-16 08:54:51

回答

1

我通常根據它們的名稱命名控件,但使用更多Englishy名稱。就像,我將命名一個名字框的標籤控件,「FirstNameLabel」和文本框「FirstNameBox」。這甚至不是故意的;我只注意到有一天我在做這件事,而且繼續這樣做是有道理的。

我想我會稱之爲「美國符號」。

+0

同樣在這裏,但小寫的第一個字符,因爲這些是私人領域。 – 2010-10-25 06:50:34

5

無論是對還是錯,使用匈牙利符號進行命名控制仍然是事實上的標準,並且它似乎非常不合適,不會採用它。與.NET語言中的方法使用Pascal Casing的方式相同(在大多數其他語言中,它是不受歡迎的),超出您所使用的環境的公認慣例只會讓代碼看起來更加失控 - 的的地方。

我個人贊成這種做法,因爲它有助於區分屬於用戶界面(視圖)的類成員與作爲代碼隱藏(模型/控制器)一部分的成員。如果控制變量被賦予與用於存儲數據,狀態等相似的名字,那麼我覺得好像很難抵制將兩者緊密結合的誘惑。當然,更明確的邏輯分離也可以克服這一點。儘管如此,匈牙利表示法還是明確了哪些變量是用戶界面的一部分,並且在設計器和代碼編輯器中都明確了它們的類型和功能。

+3

不要介意MS說過「不要這樣做」。沒關係的是,現在每一個有用的IDE現在都可以通過你的名字來告訴你變量的類型,不用擔心*你不會在沒有尷尬的情況下大聲朗讀這些名字*不用擔心匈牙利符號應該不要介意,如果你稍後將文本框改爲富文本編輯器,*你的變量名稱對你說謊*不,這種做法*需要*去死 – cHao 2010-10-25 04:43:35

+0

@ cHao:如何命名一個控件來區分它與其相關的財產? – supercat 2014-02-14 00:03:23

+0

@supercat:如果你正在分散你的關注,那麼就不會有這樣的屬性。你的表單不是數據;它是*查看數據*的想法lly表單有一個模型對象,表示正在顯示/操作的數據,控件的事件處理程序將調整該對象的屬性。 – cHao 2014-02-14 00:44:58