私は次のことを達成しようとしています。クラスTheAxisに特定のメソッドを強制するIAxisと呼ばれるインターレースがあります。さらに、パラメータに基づいて、ある種の抽象クラスを実装したいと思います。これを説明するために、コードでそれを書き留めます:
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のメソッドを必要としません。
そのようなことをすることは可能ですか?クラスのインスタンス化中に指定されたパラメーターに応じてメソッドをクラスに追加するには?
私が説明するのが難しいので、あなたが私がやろうとしていることを理解してくれることを願っています。
最高、ケビン