に依存して実装するプロパティは、私は、基本クラスがいる:デザイン:BaseClassのプロパティ
public abstract class TechObject {
protected TechObject(FwVersion version) {
FwVersion = version;
}
public FwVersion FwVersion { get; set; }
}
をそして、私はこのクラスを継承する別のクラスを持っています。このクラスの
public partial class PositioningAxis : TechObject {
public PositioningAxis(FwVersion version) : base(version) {
}
}
このような私に自動的に生成されたプロパティ:
public partial class PositioningAxis {
public int Drive_V3 { get; set; }
public int Drive_V4 { get; set; }
}
私が達成したいあなたがFwVersion
V4とクラスPositioningAxis
のオブジェクトを作成するときにV4のプロパティのみが表示されているということです。
私はすべてのクラスを変更できますが、私は良いパターンを見つけることはできません。
私が望ましくないのは、各バージョンのクラスを作成することです。また、私は、TechObjectの各バージョンからすべてのプロパティを表示する必要はありません。
コンパイル時と実行時の動作が混ざり合っているようです。 'DoSomething void(PositioningAxis a){...}'と宣言されたメソッドの本体がどのように機能すると思いますか? 'Drive_V4'が利用可能かどうかを判断するために、今までのパラメータの完全な履歴を知ることはどういう意味ですか? –
クラスを自動生成する場合は、なぜFwVersionを使用するのが大好きですか?別々のクラス 'PositioningAxis3'と' PositioningAxis4'をコード化してください。それはCOMモデルに従うか、 'IPositioningAxis3'や' IPositioningAxis4'のようなインターフェースを定義します。あなたのシステムで自由に使用でき、パラメータとしてメソッド内で使用される共通の 'IPositioningAxis'を共有します。 – MickyD