问题
Is there a way to get the value of a variable just by knowing the name of it, like this:
double temp = (double)MyClass.GetValue("VariableName");
When I normally would access the variable like this
double temp = MyClass.VariableName;
回答1:
You could use reflection. For example if PropertyName is a public property on MyClass and you have an instance of this class you could:
MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetProperty("PropertyName").GetValue(myClassInstance, null);
If it's a public field:
MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetField("FieldName").GetValue(myClassInstance);
Of course you should be aware that reflection doesn't come free of cost. There could be a performance penalty compared to direct property/field access.
来源:https://stackoverflow.com/questions/5053521/getting-variable-by-name-in-c-sharp