使用用户输入更改属性

时间:2017-01-10 11:09:58

标签: c#

我有一个包含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得不到帮助...
谢谢!

1 个答案:

答案 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);

这应该会给你一个想法。