相关疑难解决方法(0)

在C#中使用'抽象覆盖'有什么用?

出于好奇,我尝试覆盖基类中的抽象方法,并实现抽象方法.如下:

public abstract class FirstAbstract
{
    public abstract void SomeMethod();
}

public abstract class SecondAbstract : FirstAbstract
{
    public abstract override void SomeMethod();
    //?? what sense does this make? no implementaion would anyway force the derived classes to implement abstract method?
}
Run Code Online (Sandbox Code Playgroud)

很想知道为什么C#编译器允许编写'抽象覆盖'.这不是多余的吗?应该是一个编译时错误来做这样的事情.是否适用于某些用例?

谢谢你的关注.

c# overriding abstract

47
推荐指数
4
解决办法
2万
查看次数

我可以强制子类覆盖方法而不使其抽象化吗?

我有一个带有一些抽象方法的类,但我希望能够在设计器中编辑该类的子类.但是,设计者无法编辑子类,除非它可以创建父类的实例.所以我的计划是用存根替换抽象方法并将它们标记为虚拟 - 但是如果我创建另一个子类,如果我忘记实现它们,我将不会得到编译时错误.

有没有办法标记方法,以便它们必须由子类实现,而不将它们标记为抽象?

.net c# abstract-class visual-studio-2008

8
推荐指数
2
解决办法
9631
查看次数