ReSharper 2025.2 Help

将抽象类转换为接口的重构

此重构允许您将抽象类转换为接口。 当您希望一个类继承多个抽象类时,这可能会很有用——您可以轻松地将其中一个转换为接口。

请看下面的示例。 应用重构后,一个类被转换为接口:

public abstract class CachedItem { public abstract int Id { get; set; } public abstract void Register(); public abstract void UnRegister(); }
public interface CachedItem { int Id { get; set; } void Register(); void UnRegister(); }

将抽象类转换为接口

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

    • 在编辑器中,将光标放在抽象类的名称上。

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

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

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

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

    • 类型依赖图 中选择一个抽象类。

  2. 执行以下操作之一:

    • Control+Shift+R 然后选择 将抽象类转换为接口

    • 右键单击并从上下文菜单中选择 重构 | 将抽象类转换为接口

    • 从主菜单中选择 ReSharper | 重构 | 转换 | 抽象类为接口…

  3. 如果抽象类包含非抽象成员,ReSharper 会显示一个对话框,通知您这些成员的主体和/或访问器将被移除。 为避免这种情况,您需要手动将非抽象成员的逻辑移动到子类或其他地方,然后再次调用重构。

  4. 如果未发现冲突,抽象类将被转换为具有相同名称的接口,并且抽象成员的修饰符将相应更改。 否则, 解决冲突

默认情况下,接口的 命名样式 要求接口名称以 接口 开头。 因此,如果您未更改设置,接口名称将被标记为命名不一致。 只需按 Alt+Enter 并使用相应的 快速修复 来   重命名 接口。

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

语言:C#

语言:VB.NET

语言:C++

语言:ASP.NET

语言:Razor

语言:XAML

语言:Resx

语言:构建脚本

语言:SQL

此功能在 C# 中可用

此功能在 Visual Basic 中可用

功能在 C++ 中不可用

此功能在 ASP.NET 中不可用

此功能在 Razor 中不可用

此功能在 XAML 中不可用

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

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

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

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

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