2012-04-13 70 views
3

如果我有一個抽象方法的基類,有沒有辦法讓Visual Studio自動在新派生類中插入需要實現的方法的空主體(就像你可以與Eclipse和Java)?自動插入空基方法體

像這樣:

public abstract class foo 
{ 
    public virtual void bar() 
    { 
     doSomething(); 
    } 
} 

public class Derived : foo 
{ 
    //somehow tell VS to insert this without me having to write everything 
    public override void bar() 
    { 
     base.bar(); 
    } 
} 
+0

當點擊抽象類名稱但是可能來自Resharper時,我在右鍵單擊菜單中選擇了「實現抽象類」。 – Scroog1 2012-04-13 10:40:32

回答

9

是和否,在一定程度上。

1-如果基類是抽象的,那麼VS將顯示一個智能標記,它爲所有抽象方法提供存根實現,但不提供虛擬方法。這對於實現接口是一樣的。

enter image description here

2 - 對於虛擬方法,你不需要輸入的一切。在派生類中,您只需鍵入override關鍵字,然後從智能感知列表中選擇相關方法進行覆蓋。該列表將過濾到類中尚未覆蓋的方法。

+0

對第2點來說+1。我正在爲這個技巧狩獵高低。謝謝! – 2012-07-16 19:36:45

+0

感謝您節省很多時間。 – ayc 2016-04-28 10:45:45

1

不,有一種方法可以生成一個實現的方法,但不同的身體,包含在接口的VisualStudio

throw new NotImplementedException(); 

右鍵 - > ImplementInterface

1

您可以讓Visual Studio自動實現接口。但是,爲虛擬方法添加方法存根無法一次完成。您必須開始編寫替代以讓IntelliSense爲您提供重寫方法列表。

我認爲沒有這種功能的主要原因是因爲您不需要重寫這些方法。而在實現接口時,您必須實現所有方法才能滿足接口創建的要求。