【问题标题】:Get rid of Hungarian notation in C# code in automated manner?以自动方式摆脱 C# 代码中的匈牙利符号?
【发布时间】:2011-07-02 05:32:15
【问题描述】:

我有一个大型代码库,大多数变量名称都使用 Systems Hungarian,这基本上意味着我有很多 objQueue's、objCommon's、dtDataSet's 等等。

有什么方法可以转换其中的大部分吗?特别是,我想摆脱令人讨厌的obj 那些完全没有意义的东西,让变量名看起来相似并且代码完全不可读。

a similar question,但它询问是否值得更换。
像“保持原样”这样的答案对我没有任何用处,因为我确信我需要这样做这样做。

代码库真的很大,我不想一一重命名变量。我也不想运行查找和替换,因为我会得到错误的命中并进一步弄乱代码。

是否有任何自动化工具可以在 Visual Studio 中进行此类替换? Resharper 的一些插件,不管怎样?

【问题讨论】:

  • 遗憾的是,您最好的选择是可能为 ReSharper 编写一个插件,并使用它丰富的 API 以编程方式遍历整个解决方案中的所有声明,并应用一种可以自动根据名称和可能的上下文信息(如声明的类型)执行重命名。不幸的是,这绝对不是微不足道的,也不是为了装腔作势。
  • 你用什么论据来摆脱你公司的匈牙利符号?我想知道,因为我想在我的地方使用它。我已经厌倦了把 xyzzy 放在每一个该死的变量前面!
  • 哦,希望我的公司足够现代 :-)。我们是外包公司,但在我们之前,我们的客户曾与另一家公司合作,这在代码中留下了一些东方风味,如果你明白我的意思的话。
  • 即使您使用正则表达式搜索所有出现的以 obj 开头后跟一个大写字母的单词,您会得到错误的命中吗?
  • @glowcoder IMO,您不需要比 .NET 架构师编写的开创性框架设计指南第 55 页中的“请勿引用”更好的论据。引用是“不要使用匈牙利符号”。 :)

标签: visual-studio resharper hungarian-notation code-cleanup


【解决方案1】:

唉,但似乎没有 C# 的批量重命名工具。
如果我错了,请纠正我。

【讨论】:

    【解决方案2】:

    一种解决方案是使用 Visual Assist 的重命名功能。

    除此之外,非常仔细搜索'n'replace(在每次修改之间进行构建,然后签入源代码控制)。

    【讨论】:

    • Visual Assist 的重命名功能有什么作用?是和内置的重命名功能一样还是更强大?
    • 重命名(AFAIK)是上下文相关的;这不是搜索/替换。
    • 是的,但它有批量选项吗?我不想分别在每个变量上运行它。
    猜你喜欢
    • 2011-08-27
    • 2011-11-27
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 2010-09-17
    相关资源
    最近更新 更多