私のプログラムでは、特定のクラストレーサ(A1、B2、C3など)のインスタンスが複数あります。ユーザーは、tracerListBoxというリストボックスを使用して、使用するトレーサーを決定します。Cでユーザ入力を使ってコンストラクタにアクセスするには
各トレーサにfamilyという名前のコンストラクタがあるとします。
私はA1、たとえば、の家族にアクセスしたい場合、私は単純に入力していることを知っている:
A1.family
はしかし、私はこのような何かを達成コードを書きたい:
tracerListBox.Text.family
を
ユーザが決めた値をコンストラクタに渡す方法はありますか?基本的には、使用するクラストレーサのインスタンスを決定し、その情報を使用して特定のトレーサに関するすべての情報を取得することが必要です。
お手数ですがお寄せいただきありがとうございます。
単純な 'if(listBox.Text ==" A1 "){use A1.family}'を使用しないのはなぜですか?または辞書を介してそれをより汎用的にマップすることができます。ファミリが同じ種類のテキストを表示する場合は、反射を使用してこれを行うことができますが、可能であれば反射を避けることをお勧めします。 – sll
プログラムが最終的に膨大な量のトレーサを持つため、if文を避けようとしています。しかし、あなたが上に挙げたもののような電話をすることができるのは分かっていなかったので、私はそれを念頭に置いています。コメントありがとう! – wcard
コンストラクターには名前がありません。 'family'は* property *か* field *(他の可能性もあります)のようです。 – phoog