我有一个包含2个属性的简单类:
class Circle {
protected int x = 0 {get; set;}
protected int y = 0 {get; set;}
}
我有另一个类,用户可以在其中编写他想要更改的属性。
string selectProperty = Input.ReadString("Write which property to you want to change");
在同一个班级,我有一个圆形对象,我只想根据他的选择将属性的值更改为5.
circle.selectProperty = 5;
这只是一个很小的例子,我想知道主要的想法,所以2小"如果" s得不到帮助...
谢谢!
答案 0 :(得分:2)
我想你想用反射。
Circle circle = new Circle();
string selectProperty = Input.ReadString("Write which property to you want to change");
string selectedValue = Input.ReadString("Write which value should be written");
PropertyInfo propertyInfo = circle.GetType().GetProperty(selectedProperty);
propertyInfo.SetValue(circle, Convert.ChangeType(selectedValue, propertyInfo.PropertyType), null);
这应该会给你一个想法。