2012-02-14 88 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。