ReSharper 2025.2 Help

提取超类重构

此重构允许您将选定类中的某些成员提取到一个新的基类中。 原始类将扩展创建的基类。

如果当前类型已经实现了任何接口,这些接口也可以提取到新的基类中。

如果您想创建一个抽象类,请将至少一个提取的方法标记为抽象。

在下面的示例中,我们从现有类 图形 提取了一个抽象类 圆形

public class Circle : IDrawable { public Point Center { get; private set; } public Color MyColor { get; private set; } public int Radius { get; private set; } public void Draw() { // draw... } } public interface IDrawable { void Draw(); }
public abstract class Shape : IDrawable { public Color MyColor { get; private set; } public abstract void Draw(); } public class Circle : Shape { public Point Center { get; private set; } public int Radius { get; private set; } public override void Draw() { // draw... } } public interface IDrawable { void Draw(); }

提取一个基类

  1. 通过以下方式之一选择一个类:

    • 在编辑器中,将插入符号放在类名上。

    • 在解决方案资源管理器中选择一个类。

    • 文件结构窗口 窗口中选择一个类。

    • 在类视图中选择一个类。

    • 在对象浏览器中选择一个类。

    • 类型依赖关系图 中选择一个类。

  2. 执行以下操作之一:

    • Control+Shift+R 然后选择 提取超类

    • 右键单击并从上下文菜单中选择 重构 | 提取超类

    • 从主菜单中选择 ReSharper | 重构 | 提取 | 提取超类…

    提取超类 对话框将打开。

  3. 指定新基类的名称以及它应该放置的位置——在新文件中或与原始类型位于同一文件中。

  4. 选择您想要转移到新基类的成员。 成员列表可以包含:

    • 当前类型的成员

    • 选定类型当前实现的接口

  5. 要使单个成员成为/保持抽象,请勾选 设为 abstract 列中的复选框。 如果至少有一个成员被标记为抽象,则基类也将被创建为抽象类。

  6. 要快速选择所有公共成员,请单击 所有公共

  7. 如果您选择了引用其他成员的成员,则在提取的类中会出现未定义的符号。 单击 依赖 通过选择所有依赖于当前选定成员的成员来解决冲突。

  8. 要应用重构,请单击 下一步

  9. 如果未发现冲突,ReSharper 将立即执行重构。 否则,它会提示您 解决冲突

ReSharper。 提取超类(基类)重构

此功能在以下语言和技术中 受支持

语言:C#

语言:VB.NET

语言:C++

语言:ASP.NET

语言:Razor

语言:XAML

语言:Resx

语言:构建脚本

语言:SQL

此功能在 C# 中可用

此功能在 Visual Basic 中可用

功能在 C++ 中不可用

此功能在 ASP.NET 中不可用

此功能在 Razor 中不可用

此功能在 XAML 中可用

此功能在资源文件中不可用

此功能在构建脚本文件中不可用

此功能在 SQL/NoSQL 文件和注入中不可用

此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。

最后修改日期: 2025年 9月 27日