通过


提取和内联重构

Visual Studio提供了多个重构,用于将代码提取到新构造或内联代码中,以简化基本代码。 可以通过 快速操作和重构 菜单(Ctrl+.)访问这些重构。

提取方法

applies to: C#,Visual Basic

此重构将代码片段转换为自己的方法,减少从多个位置调用同一代码时的重复。

  1. 突出显示要提取的代码:

    • C#:

      Program 类的 C# 代码的屏幕截图。在该类的 Main 函数中,突出显示了一行代码。

    • Visual Basic:

       Main Sub 的 Visual Basic 代码的Screenshot。在该 Sub 中,突出显示了一行代码。

  2. 接下来,执行下列操作之一:

    • 键盘
      • Ctrl+R,然后按 Ctrl+M。 (键盘快捷方式可能因所选配置文件而异。
      • Ctrl+。触发“快速操作和重构”菜单,并从“预览”窗口弹出窗口中选择“提取方法”。
    • 鼠标
      • 选择 “编辑 > 重构 > 提取方法”。
      • 右键单击代码并选择“ 重构 > 提取 > 方法”。
      • 右键单击代码,选择“ 快速操作和重构 ”菜单,然后从“预览”窗口弹出窗口中选择“ 提取方法 ”。

    将立即创建该方法。 现在可以通过键入新名称来重命名方法。

    小窍门

    还可以更新注释和其他字符串以使用此新名称,以及在保存之前 预览更改 ,使用 IDE 右上角显示的“ 重命名 ”框中的复选框。

    • C#:

      Program 类的 C# 代码的屏幕截图。突出显示方法名称并打开“重命名”弹出窗口。

    • Visual Basic:

       Main Sub 的 Visual Basic 代码的Screenshot。突出显示方法名称,“重命名”弹出窗口为 open.

  3. 如果对更改感到满意,请选择 “应用 ”按钮或按 Enter ,并将提交更改。

提取本地函数

适用于: C#

此重构将现有方法中的代码片段转换为本地函数,当提取的代码只需要在同一方法中调用时非常有用。

  1. 突出显示要提取的代码。

  2. 按 (Ctrl.) 触发“快速操作和重构”菜单。

  3. 选择 提取本地函数

    Visual Studio代码窗口的Screenshot,其中突出显示了一行。“快速操作和重构”菜单处于打开状态,选中了“提取本地函数”。

提取基类

applies to: C#,Visual Basic

此重构将成员从所选类提取到新的基类,当希望通过继承跨类共享成员时非常有用。

  1. 将插入符号放在类名或突出显示的成员上。

  2. 按 (Ctrl.) 触发“快速操作和重构”菜单。

  3. 选择 将成员上移到新的基类

    “提取基类”对话框的屏幕截图。

新的 “提取基类 ”对话框将打开,你可以在其中指定基类的名称及其放置位置。 可以选择要传输到新基类的成员,并通过选中“使抽象”列中的复选框使成员变得抽象。

提取接口

applies to: C#,Visual Basic

此重构使用类、结构或接口中的现有成员创建接口,使其他类型的能够共享通用签名。

  1. 将光标置于类名中。

    • C#:

      提取接口的突出显示代码 - C# 的屏幕截图。

    • Visual Basic:

      突出显示代码的 Screenshot - Visual Basic.

  2. 接下来,执行以下操作之一:

    • 键盘
      • Ctrl+R,然后按 Ctrl+I。 (键盘快捷方式可能因所选配置文件而异。
      • Ctrl+。触发“快速操作和重构”菜单,然后从“预览”窗口弹出窗口中选择“提取界面”。
    • 鼠标
      • 选择 “编辑 > 重构 > 提取接口”。
      • 右键单击类的名称,选择“ 快速操作和重构 ”菜单,然后从“预览”窗口弹出窗口中选择“ 提取接口 ”。
  3. 在弹出的“ 提取接口 ”对话框中,输入系统询问的信息:

    提取接口的屏幕截图。

    领域 说明
    新接口名称 要创建的接口的名称。 该名称默认为 IClassName,其中 ClassName 是上面选择的类的名称。
    新文件名 将包含接口的生成的文件的名称。 与接口名称一样,此名称默认为 IClassName,其中 ClassName 是上面选择的类的名称。 还可以选择“ 添加到当前文件”选项。
    选择要形成接口的公共成员 要提取到接口中的项。 你可以根据需要选择任意数量。
  4. 选择确定

    该接口是在指定名称的文件中创建的。 此外,所选类实现该接口。

    • C#:

      生成的类 - C# 的屏幕截图。

      生成的接口 - C# 的屏幕截图。

    • Visual Basic:

      生成的类的 Screenshot - Visual Basic.

      生成的接口的 Screenshot - Visual Basic.

内联方法

applies to: C#,Visual Basic

此重构将单个语句正文中的静态、实例或扩展方法的用法替换为其实现,并提供了删除原始方法声明的选项。

  1. 将插入点放在方法的用法上。

  2. 按 (Ctrl.) 触发“快速操作和重构”菜单。

  3. 从以下选项之一中进行选择:

    选择 Inline <QualifiedMethodName> 以删除内联方法声明:

    Visual Studio中“快速操作和重构”菜单的 Screenshot,其中选中了“Inline'CreateWidget()”,并显示 C# 代码更改 shown.

    选择 Inline 并保留 <QualifiedMethodName> 保留原始方法声明:

    Visual Studio“快速操作和重构”菜单的Screenshot,其中“Inline and keep 'CreateWidget()”处于选中状态,C# 代码更改显示为.

内联临时变量

applies to: C#,Visual Basic

此重构会删除临时变量并将其替换为其值,在临时变量使代码难以理解时简化代码。

  1. 突出显示或将文本光标置于要内联的临时变量中:

    • C#:

      内联临时变量的突出显示代码 - C# 的屏幕截图。

    • Visual Basic:

      突出显示代码的 Screenshot- Visual Basic.

  2. 接下来,执行下列操作之一:

    • 键盘
      • 按 (Ctrl.) 触发“快速操作和重构”菜单。
    • 鼠标
      • 右键单击代码,然后选择 “快速操作和重构 ”菜单。
  3. 从“预览”窗口弹出窗口中选择 内联临时变量

    将删除该变量并将其用法替换为变量的值。

    • C#:

      内联结果 - C# 的屏幕截图。

    • Visual Basic:

      inline 结果的 Screenshot - Visual Basic.