命名约定:如何命名返回布尔值的方法?

时间:2009-09-03 00:22:27

标签: coding-style naming-conventions

我在C#中有一个界面,可以帮助从服务器上的自定义存档中检索数据。界面如下所示:

public interface IRetrieveData
{
    bool OkToRetrieve(SomeData data); // Method in question...
    bool RetrieveToLocal(SomeData data);
}

此接口由将数据检索到本地数据库的客户端实现。有不同类型的客户端可以访问彼此的数据。因此,当处理组件在实际检索之前调用IRetrieveData.OkToRetrieve时,调用将转到客户端代码,在该代码中决定是否应该检索数据。

此时客户端可以返回false并跳过该数据或返回true,处理组件调用RetrieveToLocal并将数据发送到客户端,然后客户端处理它。

我感到困惑的是,是将方法OkToRetrieve重命名为Retrieve还是CanRetrieve还是将其保留为OkToRetrieve

有没有人有任何建议?

12 个答案:

答案 0 :(得分:58)

IsRetrievable()

我认为返回布尔值的方法应该被命名为yes-no question。

答案 1 :(得分:18)

Allways命名布尔方法,其名称类似于可回答是或否的问题。

在您的情况下, CanRetrieve 将是一个好名字(只是为了使用您自己的建议)。

答案 2 :(得分:12)

如何使用前缀'should'?

ShouldRetrieve(SomeData data);

答案 3 :(得分:6)

方法意味着行动。因此,我更喜欢方法名称以动词开头。怎么样?

CheckIsRetrievable(SomeData data)

答案 4 :(得分:6)

在这个具体案例中,我可能会将其命名为:

public bool IsReady (SomeData)

因为它更清楚地展示了一旦​​返回true会发生什么。

答案 5 :(得分:6)

取决于您的使用案例。我喜欢在前面加上“是”,“确实”或“可以”这样的词: IsSomePropertySoAndSoDoesNounSupportFeature以及您的示例CanVerb

答案 6 :(得分:2)

如果您正在进行更多检查并且isRetrievable()不合适,您可以使用:

IsValid()

答案 7 :(得分:1)

CanRetrieve对我来说听起来不错。我已经看到了Microsoft API中使用的 Can 词干。唯一的另一个真正的选择IMO是IsRetrievable(来自Aziz),它在某种程度上看起来太语言化了!

答案 8 :(得分:1)

我更喜欢isOKToRetrieve或isRetrieveOK而不是“is”的变体,其功能和方法应该是动词。

答案 9 :(得分:1)

在命名约定中,写入方法名称应为动词

答案 10 :(得分:1)

通常,方法/功能指示动作,因此应在其前加上动词。例如检查,获取,制作等。

布尔变量的通用命名约定是在其前面加上帮助动词,例如是,确实,将会,可以

我认为这两个约定的结合将导致一个很好的,可识别的模式。所以getIsRetreivable()或checkIsRetrievable()对我来说看起来不错。

答案 11 :(得分:0)

如果结果由用户的许可/访问权限确定,则

MayRetrieve()可能是更好的名称。

IsRetrievable()更加含糊不清,如果除了权限之外还有其他注意事项,则可能更为合适。