从现有类生成接口

时间:2012-02-14 12:39:26

标签: c# visual-studio

我有一个班级:

Class MyClass
{
   public MyClass { ... }
   public string Name { get { ... } }
   public int IdNumber { get { ... } set { ... } }
   public void GenerateNme {...}
}

这只是一个示例课程。我希望从中生成Interface。就像,MyClass正在实现IMyClass接口。我希望输出

public Interface IMyClass
{
   string Name { get; }

   int IdNumber { get; set; }

   void GenerateNumber();
}

MyClass : IMyClass
{

}

它可以手动完成,但我只是很想知道,有没有其他简单的方法来完成这个?如果不清楚,请发表评论。

感谢。

8 个答案:

答案 0 :(得分:100)

是的,您可以使用Visual Studio从类中提取接口:

在目标类文件中:右键单击> 重构> 提取界面...

示例

enter image description here

然后

enter image description here

答案 1 :(得分:36)

在Visual Studio 2015/2017/2019中,这位于“快速操作”菜单下( Ctrl + period

请务必将光标放在要从中提取界面的类名中。否则它会显示"此处没有可用的快速操作"。

注意:只有在您实际可以提取界面时才可以这样做。例如,如果您的类只有静态方法,则无效。

答案 2 :(得分:12)

在Visual Studio 2010中,您可以右键单击MyClass并选择Refactor,`Extract Interface ...“( Ctrl + R I )。这为您提供了一个检查要提取的成员的窗口。

答案 3 :(得分:3)

在Visual Studio 2015中,单击光标或右键单击类名,然后选择“快速操作”(或按 Ctrl - )和'提取界面'选项显示。

答案 4 :(得分:3)

在最新版本的Visual Studio(2019)中,菜单项已从接受的答案中重命名。现在如何进入界面弹出窗口的完整列表如下(仅较早版本中列出的第一个已更改):

  • 右键单击课程名称,然后选择快速操作 和Refactorings ... 菜单选项(而不是早期版本中的Refactoring)。然后将出现另一个菜单,选择提取界面...

    Quick Actions and Refactorings popup menu

  • 将光标放在类的名称上,然后按住 Ctrl 并按然后选择提取界面... 菜单选项。

    Extract interface popup menu

  • 转到编辑菜单项,然后重构提取界面(您无需为此操作将在您打开的班级上执行)

    Extract interface full menu

  • 按住 Ctrl ,然后依次连续按 R I (同样,该操作将在您拥有的班级上执行打开)

执行上述四个操作中的任何一个都会弹出提取界面窗口(与早期版本基本没有变化,尽管您可以选择将界面添加到当前文件中)

Extract Interface window

答案 5 :(得分:0)

在visual studio的重构菜单中,有一个“提取界面”选项,它完全符合您的描述。

答案 6 :(得分:0)

Ctrl + 突然出现'生成覆盖...'并且没有发生任何事情,所以我在快速启动搜索框中搜索了'refactor'。结果有Edit -> Refactor -> Extract Interface Ctrl + R Ctrl + I )选项。

希望,这个提示也可以帮助别人。我正在使用VS 2017 EE。

答案 7 :(得分:0)

请注意。如果您的班级中有一个“静态”。您将无法提取到界面。因此,请先将其删除,然后再提取到界面