如果我有一个带有一些抽象方法的基类,有没有办法让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 :(得分:10)
是和否,在某种程度上。
1-如果基类是抽象的,那么VS将显示一个智能标记,它为所有抽象方法提供存根实现,但不提供虚方法。这与实现接口相同。
2-对于虚拟方法,您无需键入所有内容。在派生类中,您只需键入override
关键字,然后从智能感知列表中选择要覆盖的相关方法。该列表将过滤到类中尚未覆盖的方法。
答案 1 :(得分:1)
不,有一种方法可以生成一个已实现的方法,但是使用不同的主体,包含
throw new NotImplementedException();
通过界面右键单击VisualStudio - > ImplementInterface
答案 2 :(得分:1)
您可以让Visual Studio自动实现界面。但是,无法一次性为虚拟方法添加方法存根。您必须开始编写覆盖以使IntelliSense为您提供一系列可覆盖的方法。
我认为没有这种功能的主要原因是因为您不需要覆盖这些方法。而在实现接口时,您必须实现所有方法以满足接口创建的要求。