我尝试实现以下目标:我有一个名为 IAxis 的接口,它强制我的类 TheAxis 具有某些方法。另外我想实现某种基于参数的抽象类。为了解释这一点,将其写在代码中:
class TheAxis : IAxis
{
public TheAxis(){ }
public void IMoveToPos(int pos) {} //This is forced by the Interface
}
当调用此类的实例时,它应该能够选择要包含的方法,类似于虚拟方法,但不会覆盖现有方法,而是添加来自另一个类的已经编码的方法。我正在寻找这样的东西:
abstract class GateAxis
{
public void CloseGate() { IMoveToPos(0); }
}
abstract class XAxis
{
public void MoveToStart() { IMoveToPos(100); }
}
TheGateAxis = new Axis() as GateAxis;
现在我希望能够使用 TheGateAxis.Closegate(); 但不是 TheGateAxis.MoveToStart();
如果我打电话
TheXAxis = new Axis() as XAxis;
我希望能够使用 TheXAxis.MoveToStart(); 但不是 TheXAxis.CloseGate();
XAxis 或 GateAxis 中给出的方法不需要 TheAxis 中的任何方法,除了接口给出的一次。
有可能做这样的事情吗?根据实例化类时给定的参数向类添加方法?
我希望你能明白我正在努力做的事情,因为我很难解释。
最好的,凯文