【问题标题】:Variable pre-fixes, Visual Studio 2010 onwards? [closed]可变前缀,Visual Studio 2010 及更高版本? [关闭]
【发布时间】:2012-09-07 08:35:04
【问题描述】:

我对这个问题有点困惑,因为我将变量前缀与现在的过去联系起来,但是随着 Visual Studio 2010 及更高版本(我目前使用的是 2012),人们仍然这样做吗?为什么?

我之所以这么问,是因为如今,您可以将鼠标悬停在任何变量上,它会告诉您变量的类型和范围。为了可读性,实际上不需要预先修复。

我的意思是:

string strHello
int intHello

等等

而且我在这里偏向于语言/工具 - 因为 Visual Studio 在查看变量的确切类型(包括代码中的转换之后)方面为您做了很多工作。这不是一个“通用编程”问题。

【问题讨论】:

  • 认为您指的是变量前缀,这些前缀表示简单变量(例如整数和字符串)的类型。请在您的问题中澄清这一点,因为还有其他类型的前缀(例如用于 GUI 编程中的控件类型)需要单独考虑。
  • 抱歉,我会更新问题。

标签: .net coding-style naming-conventions


【解决方案1】:

重要的一点是变量名“不应该”代表它的类型。相反,它应该指示变量的“业务语义”;变量的类型在代码维护期间可能会发生变化,但该变量的语义很少改变。

将“StyleCop”纳入您的开发生命周期可以在团队成员之间强制执行一致的代码风格。

更新: 这段摘自“Framework Design Guidelines”的第 3 章,专门用于“命名指南”,有助于澄清这个问题:

标识符名称应清楚地说明每个成员的工作和内容 每个类型和参数代表。为此,更重要的是 这个名字比它短得多。名称应对应 场景,系统的逻辑或物理部分,以及众所周知的 概念而不是技术或架构。

请选择易于阅读的标识符名称。[...]

更倾向于可读性而不是简洁。[...]

请勿使用下划线、连字符或任何其他非字母数字 字符。[...]

不要使用匈牙利符号。 [...]

【讨论】:

  • 你能举个例子,一个带有“业务语义”的变量吗?
  • 这里的重点是,变量名应该标识它的内容,而不是它本身。如果将人名放入字符串变量中,则不应将其称为“strPersonName”,而应仅称为“PersonName”。
  • 啊哈,这是有道理的,这就是我目前所做的,感谢您解释此答案中的推理。
【解决方案2】:

我们不再使用匈牙利符号,但是当我编写 GUI 东西时,我倾向于使用前置或后置控件。例如lblNamenameLabeltfNamenameTextField

【讨论】:

    【解决方案3】:

    在变量名称前加上其类型的指示称为匈牙利符号(例如 strName)。过去经常做错事,现在通常不鼓励这样做。

    【讨论】:

    • "系统匈牙利语";应用程序仍然有用/使用。
    【解决方案4】:

    如果您指的是Hungarian notation,是的,它已成为过去,并且不再被任何人推荐(据我所知)。见MSDN naming conventions

    但是,许多人喜欢在字段名称中添加前缀,以将它们与局部变量和参数区分开来。我个人在字段名称前加上“_”。

    【讨论】:

    • "系统匈牙利语";应用程序仍然有用/使用,这在 Wiki 文章中有所介绍。
    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 2012-10-21
    • 2019-05-17
    • 2013-07-04
    • 2018-01-29
    • 2014-02-22
    • 2012-12-08
    • 2012-03-27
    相关资源
    最近更新 更多