2009-09-06 17 views
1

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

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

它也需要更新XMLDoc注释。

我大概可以用正则表达式来解决某些问题,但前提是我不重写轮子。

谢谢。

+0

为什么?重点是什么?你的代码是否更快或无错?我怀疑它会更具可读性,因为你现在拥有的和你想要的都对我来说似乎很好。不是说你不应该这样做。只是不了解动机。在修复错误或添加功能方面,你的时间不会更好吗? – paxdiablo 2009-09-06 15:08:11

+5

让代码库更愉快的工作 - 并符合贵公司的命名约定,例如,对我来说,感觉就像是一个值得赞扬的目标。如果ReSharper有一个“强制约定”的批处理作业,但我不认为它确实是...... – 2009-09-06 15:08:13

+2

@Pax:遵守最近收购的应用程序的编码风格指南是我的猜测。 – JoshJordan 2009-09-06 15:08:33

回答

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重构工具知道的区别,因为它的源文本的俯视图的语义。你的工具不会。

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

+0

我不知道,这听起来很简单,处理一些正则表达式给我。你给的例子实际上可以只使用内置的.NET字符串类在一行中完成。 – JoshJordan 2009-09-06 15:15:48

+0

正则表达式总是很容易,直到你开始使用它们来完成更适合解析的任务时:-) – paxdiablo 2009-09-06 15:18:14

2

我同意NewInTown,你应该保持原样,但是,如果你想改变名称,并且你有很好的单元测试,那么当你需要修改一个bug时,功能,然后慢慢开始将名称更改为新方案。

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

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

0

如果您刚刚继承了该项目,则可能需要将其保留下来,直到您需要开始使用该项目并对其进行更新为止。如果你的重构只是纯粹的重命名,那么花在其他地方的时间可能会更好。在您处理各个部分时重命名内容也会直观地显示您去过的地方。

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

1

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

顺便说一句。我花了整整一天的时间改变所有本地增值业务,这是一个以下划线开头的继承项目,所以他们没有。我个人不能忍受看到被过多的前导下划线污染的代码。但那只是我 - 每家店都不一样。