代码之家  ›  专栏  ›  技术社区  ›  Chris S

是启用还是启用?

  •  6
  • Chris S  · 技术社区  · 15 年前

    在Silverlight和WPF中,布尔值属性的前缀是 ( almost all 例如:

    使能
    智能停止
    显示

    在所有其他Microsoft框架中(winforms、bcl、asp.net) 不使用。是什么促使他们的团队远离了最初的命名约定——这是一种进化还是一种必须坚持的错误命名?

    3 回复  |  直到 15 年前
        1
  •  14
  •   Justin Niessner    15 年前

    就我个人而言,我总是尝试在布尔值前面加上一些含义(即,has,can等)的前缀。我的用法来自以下Microsoft指南:

    将布尔属性命名为 肯定短语(canseek而不是 CantSeek)您也可以选择 在布尔属性前面加上is, 可以,也可以,但仅限于它添加的位置 价值。

    MSDN - Names of Type Members

    我不相信总是这样 情况并非总是如此。这些实践可以追溯到.NET 2.0。在那之前,一切都是公平的。但是,在较新版本的框架中清除这些名称会导致各种各样的麻烦(因此,一些框架代码使用约定,而有些则不使用约定)。

    不过,它确实使事情更具可读性。甚至用你问题中的一个例子。你想要哪一个?

    // ambiguous naming, could mean many things
    myTab.TabStop
    

    // definitely a true/false value
    myTab.IsTabStop
    
        2
  •  3
  •   devnull    15 年前

    这个 Is 前缀可以提示属性只有一个 get 存取器,就像托马斯和瑞秋说的,这是一个乳房。如果要同时实现这两个前缀,则跳过前缀 得到 set 访问器及其类型不是bool。

        3
  •  3
  •   Thomas Weller    15 年前

    这个 Is 前缀是微软官方框架设计指南的一部分(这并不意味着所有微软产品都遵循它…)。

    就我个人而言,如果一直使用它,我觉得它很有用。它会立即告诉您属性是布尔值。不管你用不用,最重要的是要始终如一…

    托马斯