重构整个项目的变量和参数名称

时间:2009-09-06 15:03:27

标签: c# refactoring

我继承了一个大型C#项目,其中所有变量和参数名称都是written_like_this

是否有一些简单的方法或工具可以用来自动重命名它们,只需要点击10次鼠标。所以上面的例子将成为writtenLikeThis(即驼峰案例)。和实例变量_ writtenLikeThis

它还需要更新XMLDoc注释。

我可能会用正则表达式来解决问题,但前提是我不会重写一个轮子。

感谢。

4 个答案:

答案 0 :(得分:2)

我同意NewInTown你应该保持原样,但是,如果你想更改名称,并且你有良好的单元测试,那么当你需要做一些修改来修复bug时,在函数中,然后慢慢开始将名称更改为新方案。

这将阻止您尝试自动化并创建许多新错误,并且您不会浪费时间更改无法改进应用程序的工作代码。

我倾向于使用时间来修复函数来进行一些重构或基本优化,因为无论如何我都在这个函数中。

答案 1 :(得分:1)

不,Visual Studio中的重构工具不支持这种复杂性。

您需要手动执行此操作。您可以编写一些实用程序来重写项目文件,但是它会以语义分离的方式运行,并且可以选择除变量名之外的其他内容,您宁愿避免使用它们。

例如,您如何区分:

string my_badly_named_string = "Hi, there!";

string aGoodString = @"We need to rename the my_badly_named_string because
                       it looks ugly";

VS重构工具知道差异,因为它在源文本之上查看语义。你的实用程序不会。

但老实说,这将是泰坦的工作。还有一个危险,你会引入更多的错误。最好保持原样。

答案 2 :(得分:1)

我最近使用resharper做了这个。它比Visual Studio中的实用程序快得多。我不得不去每个标识符并进行重构/重命名,但它是安全的,因为它正确地重命名所有内容。重要的一点是代码必须在开始之前完全编译。它有助于偶尔重新编译,只是确保事情仍处于良好状态。它不看源,而是使用IL或编码器或其他东西。对于一个非常大的项目来说,这仍然很耗时,但它确实有效。

顺便说一句。我花了一整天的时间来改变一个以下划线开头的继承项目中的所有本地变量,这样他们就没有了。我个人无法忍受看到被过多的领先下划线污染的代码。但那只是我 - 每家店都不一样。

答案 3 :(得分:0)

如果您刚刚继承了该项目,那么在您需要开始使用它并进行更新之前,可能值得离开它。如果您的重构延迟完全是重命名,那么花在其他地方的时间可能会更好。在处理各个部分时重命名事物也将直观地显示您去过的地方。

如果您真的想重命名变量和参数名称,您可能需要尝试构建一个只解析代码文件以进行文本替换的过程(使用正则表达式或基本字符串操作,具体取决于您所知道的,承载记住它只是一次改变)这可能比评估代码重构工具更快。