2011-05-04 50 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) 
相关问题