重构工具可自动重新构造源代码,例如,通过将局部变量升级为参数或将代码块转换为方法。
重构是在编写代码后在不更改代码的外部行为的前提下通过更改代码的内部结构来改进代码的过程。
一、重构命令
- 提取方法
- 重命名
- 封装字段
- 提取接口
- 将局部变量提升为参数
- 移除参数
- 重新排列参数
利用重构可以对代码进行优化,以及很方便的修改项目中已经存在的代码。下面用一个小例子来说明重构的功能。
二、示例
有一个计算类CalClass,代码如下:
- class CalClass
- {
- const double PI = 3.1415926;
- public double CalculatePointNeeded(double radius, double paintPerUnit)
- {
- double area = PI * radius * radius;
- return area / paintPerUnit;
- }
- }
在另外一个类中调用类CalClass,代码如下:
- private void btn_test_Click(object sender, EventArgs e)
- {
- double dbRadius = 10.0;
- double dbPaintPerUnit = 2;
- CalClass test = new CalClass();
- MessageBox.Show(test.CalculatePointNeeded(dbRadius, dbPaintPerUnit).ToString());
- }
重命名
假设因为某种原因需要修改类CalClass的名字,传统的做法是修改完CalClass的名字之后,需要在引用该类的地方都要进行修改,如果有一个没有修改,程序就会编译错误。然而在VS2005中,我们可以使用重构对该类进行重命名。
选中类名“CalClass”,单击VS2005菜单栏上的“重构”-->“重命名”命令,会弹出一个重命名对话框,在此我们将类名CalClass改成“MyCalClass”,如下图所示:
单击“确定”按钮,会出现一个预览对话框,如下图所示:
单击“应用”按钮,就会将项目中所有引用CalClass类的地方全部重命名为“MyCalClass”,如下图所示:
VS2005支持多项目之间的重构,如果一个类在很多项目中都用到了,那么当重构的时候,可能在这多个项目中,都对该类做了修改。
提取方法
将MyCalClass中的一条语句提取出来,使其作为一个方法。选中该条语句,如下图所示:
然后单击VS2005菜单栏上的“重构”-->“提取方法”命令,会弹出一个“提取方法”对话框,如下所示:
输入新方法的名称,然后单击“确定”按钮,一个新方法就构造好了,如下图所示:
通过上面的代码可以看到,当重构了一个新方法之后,在原来的语句的位置会自动调用该方法。
重新排列参数
选中方法CalculatePointNeeded,单击VS2005菜单栏上的“重构”-->“重新排列参数”命令,会弹出“重新排列参数”对话框,如下图所示:
通过更换参数的位置,可以对项目中所有调用该方法的地方进行同步更改,如下图所示:
在一些大型项目中,如果手动去修改一些代码的话,几乎是不可能的,但是有了重构这个功能,这个问题就变得简单多了。