2012-02-14 89 views
29

我有一个类为:生成接口从现有的类

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

这仅仅是一个示例类。我希望从它生成接口。就像MyClass正在实现IMyClass接口一样。我希望可以将输出为

public Interface IMyClass 
{ 
    string Name { get; } 

    int IdNumber { get; set; } 

    void GenerateNumber(); 
} 

MyClass : IMyClass 
{ 

} 

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

谢谢。

+0

[DevExpress CodeRush](http://www.devexpress.com/Home/Try.xml)是一个可以帮你实现的插件。我不确定[免费版](http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/)是否具有特定的重构功能。 – Blorgbeard 2012-02-14 12:45:31

+1

糟糕,我误解了:重构是内置于VS.忽略我:) – Blorgbeard 2012-02-14 12:47:43

回答

67

是的,你可以使用Visual Studio提取一类的接口:

内部的目标类文件:右键点击>重构>提取接口...

enter image description here

然后

enter image description here

+0

-1不说如何。 Matthias赢得胜利!;) – KevinDeus 2013-09-25 18:16:15

+4

@KevinDeus所以你真的认为“这个答案没有帮助,实际上值得被低估”? – ken2k 2013-09-25 23:07:54

+0

哦。非常奇怪..在我的工作电脑上图像不显示..很多道歉! – KevinDeus 2013-09-26 05:01:19

0

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

8

在Visual Studio 2010中,您可以用鼠标右键单击MyClass并选择Refactor,`提取接口...”(按Ctrl +[R)。这给你一个窗口来检查要提取的成员。

24

在Visual Studio2017分之2015,这是快速操作菜单下(按Ctrl +

+0

这不起作用,我想你的意思是'时期':Ctrl + period'。',即它在快速操作菜单中。 – 2016-02-15 22:51:37

+1

编辑我的答案更加清晰 – cdie 2016-02-16 07:52:41

+0

确保将光标置于要从中提取界面的类名称中。否则,它会显示“这里没有可用的快速操作”。 不要改变正在运行的工具微软和用户的行事方式,直到它比以前好很多。从Windows 8学习,这就是为什么我们可以免费升级到Win10 ;-) – Legends 2016-04-01 10:25:42

2

在Visual Studio 2015年中,单击鼠标或类名点击右键,然后选择快速操作(或按Ctrl - )和“Extract Interface”选项显示。

+0

酷编辑@Stijn,我必须记住:Ctrl 2016-02-16 16:32:33

0

'Ctrl'+'。'正在弹出“产生覆盖......”,除此之外没有任何事情发生,所以我在快速搜索框中搜索“重构”。结果有'编辑 - >重构 - >提取界面(Ctrl + R,Ctrl + I)'选项。

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