在命令中命名布尔参数

时间:2019-02-11 13:02:21

标签: naming

布尔值以罐头,罐头,罐头,罐头等为前缀 为了指示其类型(布尔值),我想更重要的是: 是这个意思。

但是对于命令(无效方法),我发现它并不那么简单。 我看到过诸如enable(bool)参数之类的命令,该命令将值设置为true或false。

但是我不认为一个名为enable(...)的方法应该执行“禁用”操作。

我宁愿制作一种无需参数即可禁用()的加​​法或称为Set ...(bool param)的方法

但是哪个约定描述了该参数的调用方式? 在我看来,以Is开头的方法有点让人困惑 总是表示某种状态,但不是,但是如果要通过命令显式设置布尔值,我认为给该参数加上前缀是没有道理的。

您如何命名这样的函数(s参数)?

void SetHasSpecialSetting(bool flag) => this.HasSpecialSetting=flag;

更新: 正如我所指出的,为布尔值加上前缀就意味着它们的类型显然是布尔型。 在需要此布尔值作为条件的情况下,它的更多功能使其可读性更高。 但是对于仅将bool属性设置为给定值的命令,不需要知道该属性的含义,也不必知道它的类型是否为bool,因为我很清楚。

1 个答案:

答案 0 :(得分:0)

首先,我同意评论者的意见:如果项目中有命名规则,请使用它。

虽然您的实现也不错,但我不喜欢使用泛型函数+参数的方法。当我必须实现类似的东西时,我更喜欢(用伪代码):

set ( parameter ) => parameter = true
reset ( parameter ) => parameter = false

或:

setParameter () => parameter = true
resetParameter () => parameter = false

对我来说,这更容易阅读。我将对/错信息移到了函数名中。其他人使用clear代替reset。那也很好,但是再次,这不是我的喜好。

底线:

首先,研究该项目(或与他人交谈)并找到当前使用的命名规则。如果存在,请关注它们。

其次,根据事实做出决定。