使用“Does”(在C#中)启动方法名称是一个好习惯吗?这对我来说有点奇怪,所以我想得到你的意见。
我正在编写一种方法,检查帐户是否存在,签名是否存在 “bool DoesAccountExist(id)”?有更好的名字吗?
谢谢!
答案 0 :(得分:34)
在这种情况下,我个人会使用AccountExists(id),因为它在if块中看起来更自然
if (AccountExists(id)) { }
答案 1 :(得分:20)
对于任何返回布尔值的方法,我们总是使用Is
,所以在这种情况下我们会调用方法
IsExistingAccount(id)
答案 2 :(得分:4)
我通常不使用Do,只使用AccountExists(id)。
对我而言,稍后在代码中看起来更自然:
if(AccountExists(id))
{
ValidateLogin();
}
替代方案如下:
if(!DoesAccountExist(id)) {}
对我来说似乎很奇怪。我会读到,好像帐户不存在?哪个少了帐户就不存在了。
答案 3 :(得分:2)
“Is”前缀成语有助于阐明Array“Empty”之类的方法,这可能意味着“清空数组”或“数组为空?”。如果一直使用“IsEmpty”显然是bool返回,按照惯例,“Empty”变为清空行为。
在问题的背景下,我同意@Andy Whites的第二个建议:
if (IsExitingAccount) ...
这里'Is'触发了bool返回constistant的强大自动含义,其中使用了where(IsEmpty,IsNull等)
答案 4 :(得分:1)
我认为AccountExists
是您最好的选择,但另一个选择是:IsExistingAccount
。对于返回布尔值的方法或属性,使用命名约定可能很有用,其中方法以单词“is”开头。如果你使用“是”,你将不得不重新定义方法名称的其余部分,以便对读者有意义。
答案 5 :(得分:0)
Can或Is可以像CanCopy
一样使用,或者IsAccountExists
也可以。遵循预定义的约定使代码更具可读性坦率地说,前缀对我来说也有点奇怪。
答案 6 :(得分:0)
另一种选择是使用标准的C#复数Is,Any。
AnyAccountsExist(id)