2011-05-04 27 views
11

用「Does」(在C#中)啓動方法名是否是一種好習慣?這對我來說有點奇怪,所以我想聽聽你的意見。以「Does」開頭的方法名稱看起來不錯嗎?

我正在寫一個方法來檢查賬戶是否存在,簽名應該是 「bool DoesAccountExist(id)」?有更好的名字嗎?

謝謝!

+1

它看起來像你沒有考慮如何使用你的布爾返回函數。去AccountExists,我相應地upvoted。 – Jodrell 2011-05-04 17:37:24

+5

'bool answer = DoesAMethodNameLookGoodStartingWith(「Does」);' – BoltClock 2011-05-04 18:17:32

回答

30

個人而言,我會在這種情況下AccountExists(ID)去的,因爲它會如果塊

if (AccountExists(id)) { } 
+5

您擊敗了我的AccountExists()名稱。對你有好處。 – David 2011-05-04 17:35:16

3

我通常會離開關不和簡單地使用AccountExists(ID)看起來更自然在。

對我來說,它看起來在代碼中更自然後如:

if(AccountExists(id)) 
{ 
    ValidateLogin(); 
} 

另一種方法是這樣的:

if(!DoesAccountExist(id)) {} 

似乎很奇怪我。我會閱讀,如果帳戶不存在?這使得少於帳戶不存在。

+1

+1顯示'if'看起來有多壞'if'('''構造 – 2011-05-04 17:48:25

18

我們總是用Is爲將返回一個布爾值,所以在這種情況下,我們會調用該方法

IsExistingAccount(id) 
+1

+1使用'Is'約定 – 2011-05-04 17:48:52

+1

令人驚訝,但這幫助了我的矩形程序員頭很大:)重點是'現有'的形式,你可以把所有的東西放在那裏 - 比如'IsRefreshing ...' - 我也喜歡爲所有人提供一個單一前綴的想法 - 否則你需要「應該」有''做'等等,這取決於你在處理什麼w/- 所有最有用的答案 – NSGaga 2016-04-17 17:10:28

1

我覺得AccountExists是你最好的選擇,但另外一個選擇是任何方法:IsExistingAccount。對於返回布爾值的方法或屬性,在方法以單詞「is」開頭的情況下使用命名約定會很有用。如果使用「是」,則必須重新調整方法名稱的其餘部分,以便讀者理解它。

0

Can or Is可以像CanCopyIsAccountExists一樣使用。遵循預定義的約定使代碼更具可讀性。坦率地說,前綴對我來說看起來有點奇怪。

1

「Is」前綴習語有助於闡明像「空」這樣的可能意味着「清空數組」或「數組爲空」的方法。如果一致地使用「IsEmpty」顯然是bool返回,並且按照慣例,「Empty」變得清晰爲清空動作。
在我@Andy白人認同問題的情況下第二提示:

if (IsExitingAccount) ... 

這裏的「是」觸發布爾回報constistant強烈暗示自動與其別的用途,其中(的IsEmpty,ISNULL等)

0

另一種選擇是使用Is,Any的標準C#複數。

AnyAccountsExist(id) 
相關問題