Visual Studio提供了多个重构,用于重命名和重组代码符号和文件。 可以通过 快速操作和重构 菜单(Ctrl+.)访问这些重构。
重命名代码符号
applies to: C#,Visual Basic
此重构可安全地重命名代码符号的标识符,例如字段、局部变量、方法、命名空间、属性和类型。 项目中的所有引用都会自动更新,避免手动查找和替换错误。
突出显示或放置要重命名的项中的文本光标:
C#:
Visual Basic:
用于重命名的突出显示代码的

接下来,使用键盘或鼠标,如下所示:
-
键盘
- 按 Ctrl+R,然后按 Ctrl+R。 (键盘快捷方式可能因所选配置文件而异。
-
鼠标
- 选择 “编辑 > 重构 > 重命名”。
- 右键单击代码并选择“ 重命名”。
-
键盘
只需键入新名称即可重命名项。
C#:
Visual Basic:
小窍门
还可以更新注释和其他字符串以使用此新名称,以及在保存之前 预览更改 ,使用打开下拉菜单时显示的“ 重命名 ”框中的复选框。
如果对更改感到满意,请选择 “应用 ”按钮或按 Enter 并提交更改。
注解
从 Visual Studio 2019 2019 版本 16.3 开始,重命名与它所在的文件名称匹配的类型时,将显示一个复选框,使你能够同时重命名该文件。 重命名类、接口或枚举时,将显示此选项。 对于具有多个定义的分部类型,不支持此选项。
如果使用已存在导致冲突的名称,则 重命名 框会发出警告。
重命名符号的另一种方法是在编辑器中更改其名称。 然后,使用符号名称中的光标,按 Ctrl+。或者只需展开显示的灯泡图标菜单,然后选择“将旧名称重命名<为>新名称<>”。
将类型移到匹配的文件
applies to: C#,Visual Basic
此重构将类型移动到具有相同名称的单独文件中,当一个文件中有多个类型时,可改进代码组织和导航。
将光标置于在其中定义它的类型的名称内。 例如:
接下来,执行下列操作之一:
- 按 Ctrl+。
- 右键单击类型名称并选择“ 快速操作”和“重构”
从菜单中选择 “将类型移动到 TypeName.cs ,其中 TypeName 是所选类型的名称。
该类型将移动到项目中与类型同名的新文件中。
C#:
Visual Basic:
inline 结果的

同步类型和文件名
applies to: C#,Visual Basic
此重构将重命名类型以匹配文件名,或重命名文件名以匹配它所包含的类型,使代码保持有序且易于导航。
注释
此重构尚不适用于 .NET Standard 和 .NET Core 项目。
突出显示或将文本光标置于要同步的类型的名称中:
C#:
Visual Basic:
同步类型的突出显示代码的

接下来,执行下列操作之一:
-
键盘
- 按 Ctrl+。触发“快速操作和重构”菜单,并从“预览”窗口弹出窗口中选择“将文件重命名为 TypeName.cs,其中 TypeName 是所选类型的名称。
- 按 Ctrl+。触发“快速操作和重构”菜单,并从“预览”窗口弹出窗口中选择“重命名”类型,其中文件名是当前文件的名称。
-
鼠标
- 右键单击代码,选择“ 快速操作和重构 ”菜单,然后从“预览”窗口弹出窗口中选择“ 将文件重命名为 TypeName.cs ,其中 TypeName 是所选类型的名称。
- 右键单击代码,选择“快速操作和重构”菜单,并从“预览”窗口弹出窗口中选择“重命名”类型,其中文件名是当前文件的名称。
类型或文件已重命名。
C#:在下面的示例中, 文件MyClass.cs 重命名为 MyNewClass.cs ,以匹配类型名称。
Visual Basic:在下面的示例中,文件Employee.vb重命名为Person.vb以匹配类型名称。
inline 结果的

-
键盘
同步命名空间和文件夹名称
适用于: C#
当将文件移动到新文件夹时,此重构将更新命名空间以匹配文件夹结构。
将光标置于命名空间名称中。
按 (Ctrl.) 触发“快速操作和重构”菜单。
选择 “将命名空间更改为 <文件夹名称>”。
将声明移至引用附近
applies to: C#,Visual Basic
此重构使变量声明与其用法更接近,提高了可读性和缩小变量范围。
将光标置于变量声明中。
接下来,执行下列操作之一:
-
键盘
- 按 Ctrl+。触发“快速操作和重构”菜单,并从“预览”窗口弹出窗口中选择“移动”声明。
-
鼠标
- 右键单击代码,选择“ 快速操作”和“重构 ”菜单,然后从“预览”窗口弹出窗口中选择“ 在引用附近移动声明 ”。
-
键盘
如果对更改感到满意,请按 Enter 或单击菜单中的修补程序,并提交更改。
例:
// Before
int x;
if (condition)
{
x = 1;
Console.WriteLine(x);
}
// Move declaration near reference
// After
if (condition)
{
int x = 1;
Console.WriteLine(x);
}