【问题标题】:Hungarian notation in VB.NET?VB.NET 中的匈牙利符号?
【发布时间】:2011-08-27 12:07:15
【问题描述】:

我们的编程老师教我们在编程时使用匈牙利符号(例如intMyIntegerstrMyString、...)。

但我在某处听说这实际上并没有用于专业领域。这是真的吗?

编辑:我刚刚发现这实际上是“Leszynski”

【问题讨论】:

  • 赞成、反对等都在这里:en.wikipedia.org/wiki/Hungarian_notation 投票结束,因为这是主观的。
  • Visual Studio 中无需使用。它会为您提供大量提示和信息。
  • 看看微软自己推荐的.net命名约定msdn.microsoft.com/en-us/library/xzf533w0.aspx
  • 如果我们删除“int”(按照普遍共识),我们也必须删除“Integer”。这留下了“我的”——变量名中最愚蠢的部分。所以所有变量都必须是匿名的?
  • @Ekkehard - “MyInteger” 是一个糟糕的变量名,即使前面没有 int。名称应反映值是什么,例如 currentScore 或其他内容。

标签: vb.net hungarian-notation


【解决方案1】:

你是对的;匈牙利符号不受欢迎。

【讨论】:

    【解决方案2】:

    没错。现代 IDE、对应用程序的误解、使用问题等......基本上已经扼杀了它。这并不意味着你不会在那里找到它,但我会避免使用它并习惯于骆驼套管和帕斯卡套管。

    Microsoft 有建议 on naming standards。他们在 .Net Framework 中使用它,并且很多人都遵循这一点。

    MS 还拥有All-In-One Code Framework site,其中包含文档和示例,以帮助进一步推进这一想法和其他最佳实践(从 MS 的角度来看)。

    【讨论】:

      【解决方案3】:

      Joel 的这篇文章将为您提供一些有关匈牙利符号的有用信息。
      http://www.joelonsoftware.com/articles/Wrong.html

      【讨论】:

        【解决方案4】:

        我们刚刚在我从事编程工作的地方讨论过这个问题。我们的决定是,名称要清晰易懂,而不是只保留几个字符。

        【讨论】:

        • 这个“答案”可以很容易地采用任何一种方式,但语气表明它支持前缀。我个人更喜欢清晰的代码,因为我的代码没有乱七八糟地为编译器应该检查的东西添加前缀。其他人喜欢不用VS自带的功能什么的,我不知道。
        【解决方案5】:

        AFAIK,它专门在 Windows 下使用。匈牙利符号来自软件工程师Charles Simonyi,他当时是微软的员工。到目前为止,它主要是废弃的,你可以see。在我看来,我同意 Stroustroup 的观点,他说匈牙利符号的实用性仅适用于弱类型语言,但它在 OOP 语言中令人困惑,并且通常是对抽象的限制。

        【讨论】:

          【解决方案6】:

          当您开发自己的艺术作品时(我考虑编写艺术作品),您会发现您将建立自己的命名约定。 就像一个吉他手采用了他/她的英雄的某些风格。

          我还没有找到任何适合我的“官方”命名约定建议。

          我认为可读性是最重要的主题。

          我的个人规则是:

          私有变量应以_ 开头。 变量应该使用缩写的匈牙利风格,例如s 代表stringi 代表integerb 代表boolean,等等。

          对我来说,传递给函数的变量总是以u 开头,并且它们有一个非常独特的名称,例如uCountItemsInAList,因此不必使用匈牙利语前缀,因为类型相对清晰命名已经。而且传递给函数的变量已经很容易被误解,所以我认为允许使用一个长的、非常具有描述性的名称。

          当我只在函数中使用类时,如果函数很短,我会以n 开头类名。

          我每天编码 16 个小时,而且我很疯狂,所以我认为我的回答不会那么“错误”。虽然这个话题非常主观,但我认为可读性可以被认为是一个关键因素,我的编码方式包含了我迄今为止能够研究的所有顶级编码器的部分内容。

          【讨论】:

            猜你喜欢
            • 2011-11-27
            • 2011-11-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-06-06
            • 2010-09-17
            • 2012-01-17
            相关资源
            最近更新 更多