【问题标题】:Is there official guidance for beginning the name of a boolean property with 'Is'? (e.g., 'IsDeleted')是否有以“Is”开头的布尔属性名称的官方指南? (例如,“已删除”)
【发布时间】:2013-08-26 13:32:36
【问题描述】:

我喜欢使用布尔属性命名约定Is______,例如IsDeletedIsDefault 等。但我在这方面遇到了挑战。那么有没有关于这个主题的“官方”指导?我还没找到。

(而且,是的,我知道这是细节。)

【问题讨论】:

  • 您遇到的其他命名约定是什么?
  • 致那些试图关闭它的人:它不是基于意见的 - 在命名指南中有一个具体的规定。
  • 另一种选择是不使用“Is”部分而只使用“Deleted”例如,几乎我们拥有的每个实体都有一个 IsDeleted 的已删除标志,对我来说这比只是“删除”。
  • @Greg Only 似乎适用于动词。如果布尔值应该引用诸如Node 之类的名词,IsNode 完美地描述了它,而Node 会让我感到困惑。我还应该提到Noded吗?
  • 加上@Jim 的评论,if (object.IsDeleted) 的阅读效果比if (object.Deleted) 好。

标签: c# .net boolean naming-conventions


【解决方案1】:

来自 MSDN 上的Naming Guidelines

√ DO 使用肯定短语 (CanSeek 而不是 CantSeek)。或者,您还可以为布尔值添加前缀 带有“Is”、“Can”或“Has”的属性,但仅限于增加价值的地方。

所以基本上指南确实鼓励使用IsHasCan 等。例如,在您的应用程序中删除实体的情况下,这些实体标有IsDeleted 标志。 “稍微容易理解”的价值足以保留这个Is 部分。

我个人也遵循此指南,因为它将代码的某些部分转换为完全有效的句子,从而提高了可读性。考虑:

if (object.IsDeleted)

【讨论】:

  • 这是 IMO 的最佳答案,但我确实看到有人提出“是、可以和已经没有在这里增加价值”的论点。
  • @Rob,绝对不是,至少不是我的本意。让我在编辑中详细说明。
  • Is、Can 和 Has,简而言之,让代码更易于阅读和理解。
  • 我完全同意应该始终使用 Is、Can 和 Has,因为它更易于阅读并立即向开发人员显示它是一个布尔值。我的评论是说 OP 正在寻找弹药来对付挑战他的人,他们很可能会使用他们不会增加价值的论点。
  • @Rob,我真的很喜欢你所说的“它立即向开发人员显示它是一个布尔值”。我认为这就是“是”确实增加价值的地方。
猜你喜欢
  • 2013-01-02
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
相关资源
最近更新 更多