有没有一种方法可以仅通过知道变量的名称来获取其值,就像这样:
double temp = (double)MyClass.GetValue("VariableName");
当我通常会像这样访问变量
double temp = MyClass.VariableName;
你可以使用反射。例如,如果PropertyName
是MyClass
上的一个公共属性,并且你有该类的一个实例,那么你可以:
MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetProperty("PropertyName").GetValue(myClassInstance, null);
如果它是一个公共的字段: fieldMyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetField("FieldName").GetValue(myClassInstance);
当然,你应该意识到反射并非免费。与直接访问属性/字段相比,可能会有性能损失。