布尔命名约定:语句还是问题?

时间:2014-09-03 07:30:29

标签: c# boolean naming-conventions

(问题是故意拼错:stackoverflow不允许标题中的“问题”一词)

考虑一个属性 SomethingHasChanged

这可以作为声明, SomethingHasChanged!或问题 SomethingHasChanged?

阅读

命名布尔值有哪些约定(C#)?作为陈述还是问题?

背景

我工作的客户的所有代码都是用荷兰语编写的。在荷兰语中,这两种形式之间存在细微差别,英语中不存在。因此,我们需要在两种形式之间做出决定。示例: ErIsIetsGewijzigd! vs IsErIetsGewijzigd?

3 个答案:

答案 0 :(得分:3)

许多布尔属性以IsHas开头,例如:

this.IsRed = this (object) is red
this.HasChildren = this (object) has children

你的名字并不适合这个惯例:

this.SomethingHasChanged = this (object) has something that has changed.

要符合此约定,我会重命名您的财产IsDirty或类似内容。

答案 1 :(得分:2)

布尔变量或属性是表达式的结果,因此,它不是问题,而是声明。

相反,如果你问一个问题,这个问题需要一个操作来回答它,那么它应该是一个方法,并且可以这样命名。

答案 2 :(得分:0)

这取决于您是否想要通知您阅读状态或根据要求确定它。属性bool HasChanged {get; set; }可以被调用两次,它应该产生相同的存储值。但是,方法bool HasChanged()通信它将根据需要为您确定。

最后,因为我也是荷兰语,ErIsIetsGewijzigd听起来像一个命令,所以当我读它时,它应该设置属性,即ErIsIetsGewijzigd(true);