次のように、変数の名前を知るだけで変数の値を取得する方法はありますか。
double temp = (double)MyClass.GetValue("VariableName");
通常、このような変数にアクセスするとき
double temp = MyClass.VariableName;
リフレクションを使用できます。たとえば、PropertyName
がパブリックプロパティでMyClass
あり、このクラスのインスタンスがある場合、次のことができます。
MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetProperty("PropertyName").GetValue(myClassInstance, null);
パブリックフィールドの場合:
MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetField("FieldName").GetValue(myClassInstance);
もちろん、リフレクションは無料ではないことに注意してください。プロパティ/フィールドへの直接アクセスと比較して、パフォーマンスが低下する可能性があります。