私はこれを理解するのに非常に近いと思いますが、私はしばらくの間進歩しておらず、実際に周りに尋ねるしかありません。
GraphicsSettings
グラフィックプロパティの大規模なセットを持つクラスがあります。これらのプロパティには、比較ループに使用するプロパティ名のプレースホルダー値があります。
比較ループはクラス内の関数であり、グラフィックスプロパティの配列とStringreader
外部テキストファイルの行を超えて実行されます。
ループがグラフィックスプロパティの値と行にあるものの一部との一致を見つけたら、行の値全体をグラフィックスプロパティに設定します。
ただし、ここに問題があります。クラス内からプロパティセッターを呼び出す方法がわかりません。名前を具体的に入力しないと、ループが発生するため、プロパティセッターを呼び出すことができません。
私は使用してみました:
this.GetType().GetProperty(key).SetValue(this,line, null);
ここで、「key」はプロパティ名、「line」は行の値です。私の理解では、これは外部からクラスオブジェクトを呼び出して値を設定する場合は問題なく機能するはずですが、このメソッドを使用して内部からクラスを呼び出すことはまったく反対のようです。
私が得るのは
TargetInvocationException was unhandled
エラーだけです。それほど驚くことではありませんが、これを回避する方法がわかりません。
だから私はそれがこれに帰着すると思います:プロパティが存在する同じクラス内から、文字列を使用してプロパティにアクセスするにはどうすればよいですか?