新しいコードを機能させようとして、こぶをつぶしてきました。これは、if ステートメントを使用して、より単純で広範な方法で行うことができました。ただし、これはアプリケーションのバージョン 2 になるため、コードをもう少しクリーンで効率的にしたいと考えています。
私がやろうとしているのは、条件付きでクラスをインスタンス化することです。次のようになります。
int Airplane = 195;
if (Airplane == 190)
_E190 Aircraft = new _E190();
else if (Airplane == 195)
_E195 Aircraft = new _E195();
私は両方のクラスを持っていますが、「航空機」というキーワードを使用したいので、クラスごとにコードの複数の部分を作成する必要はありません。また、C# では多重継承 (私の意見では、これでうまくいくと思います) を使用できないこともわかりました。この言語は比較的新しい言語です。
これまでのところ、クラスを希望どおりにインスタンス化することはできましたが、各クラス内で宣言された変数を使用できないようです。私はこれをしました:
int Airplane = 195;
var Aircraft = Activator.CreateInstance( (Airplane == 195) ? typeof(_E195) : typeof(_E190));
MessageBox.Show(Aircraft.GetType().ToString());
MessageBox には型が正しく表示されますが、「Aircraft」オブジェクトを使用してクラス自体にアクセスすることはできません。これを行う方法は他にもあると確信していますが、どれも私にとっては問題ありません。
ありがとう!