こんにちは、プロパティ リフレクション情報に基づいて、2 つのオブジェクトを特定の型にキャストしようとしています。これを動的に実行したいので、2 つのオブジェクトをこのクラスに含めることができるタイプごとに多数のスイッチ ケースなどを必要としません。全体として、それらはほとんど int または float になります。現時点では、「var」および「object」キーワードを使用して、入力された調整値とプロパティの元の値を保持しようとしました。
// .. snip
/* Get property information. */
PropertyInfo propInfo = classObj.GetType().GetProperty("property-name");
if (propInfo == null)
continue;
/* Prepare object values. */
object orgVal = propInfo.GetValue( classObj, null );
object adjVal = Convert.ChangeType( strAdjust, propInfo.GetType(), new CultureInfo("en-us"));
// .. math on objects here
// ex. orgVal += adjVal;
// .. snip
入力調整値は文字列ですが、'int' または 'float' 形式のいずれかであるため、簡単に変換できます。これはすべて正常に機能します。問題となるのは、元の値を新しい調整値で調整できるキャストだけです。
私は.NET 4.0でこのようなことを達成できる「動的」キーワードがあることを知っていますが、現在私は3.5を使用して立ち往生しています。
どちらのオブジェクトも、プロパティ情報 propInfo.GetType() の型を使用します。
これに関するヘルプは大歓迎です。おそらく、これを達成するためにここで基本的なことを見落としていると思います。前もって感謝します。
-CK
編集:
言い忘れましたが、申し訳ありませんが、これは Zune HD で開発されているため、アクセスできるフレームワークは、使用できる/できないものにかなり制限されています。