我有一个 C# 类,它有很多虚拟方法,其中一些方法本质上是抽象的(它们在子类中完全实现,基类是空的)。
为了让它编译,我在基类中抛出一个 InvalidOperationException ,并注释应该做什么。这只是感觉很脏。
有更好的方法来设计我的课程吗?
编辑:
它适用于将在加拿大运行的应用程序的中间层,一半的方法是通用的,因此是虚拟的。其中一半的方法是针对各省的。
Public class PersonComponent()
{
public GetPersonById(Guid id) {
//Code to get person - same for all provinces
}
Public virtual DeletePerson(Guid id) {
//Common code
}
Public virtual UpdatePerson(Person p) {
throw new InvalidOperation("I wanna be abstract");
}
Public Class ABPersonComponent : PersonComponent
{
public override DeletePerson(Guid id)
{
//alberta specific delete code
}
public override UpdatePerson(Person p)
{
//alberta specific update codecode
}
}
希望这是有道理的
将基类以及没有实现的方法标记为抽象。
Like so
public abstract class BaseClass
{
public abstract void AbstractMethod();
}
public class SubClass: BaseClass
{
public override void AbstractMethod()
{
//Do Something
}
}
抽象类之外不能有抽象方法。将类标记为抽象意味着您将无法实例化它。但那样就没有任何意义了。您打算如何处理一个不实现这些方法的类?
Edit:通过查看您的类,是的,我会将 PersonComponent 与 UpdatePerson 方法一起抽象化。或者,如果 UpdatePerson 没有对 PersonComponent 执行任何操作,则保持原样,但将 PersonComponent 的 UpdatePerson 方法设置为空。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)