【发布时间】:2017-11-15 23:01:56
【问题描述】:
我的目标是在派生类之一上调用 Consume 时自行更新 Abstract 类。
想象一下:
public interface IConsumable
{
void Consume();
}
public abstract class AbstractConsumable : IConsumable
{
private bool _consumed = false;
public virtual void Consume()
{
_consumed = true;
}
}
public class HealthyConsumable: AbstractConsumable
{
public override void Consume()
{
// Do something healthy and ...
base.Consume(); // Would like to avoid this...
}
}
public class PoisonousConsumable: AbstractConsumable
{
public override void Consume()
{
// Do something poisonous and ...
base.Consume(); // Would like to avoid this...
}
}
我想在这里实现的是不必在override 方法上调用base.Consume(),但是一旦派生类调用它们的Consume() 方法,仍然有抽象类集_consumed。
【问题讨论】:
-
与其说你认为你的问题很明显,而且你实际上不需要问一个问题,你实际上应该问一个问题,并解释你实际上想要做什么.试图让人们猜测你真正想要什么并不好。
-
我已经更新了问题,所以这是一个问题。
标签: c# overriding virtual abstract