【问题标题】:Increment "PropertyInfo SetValue"增加“PropertyInfo SetValue”
【发布时间】:2018-11-08 20:04:25
【问题描述】:

这是我的代码:

        Enemy ble = new Enemy();
        PropertyInfo prop = ble.GetType().GetProperty("x");
        prop.SetValue(ble,20, null);
        Console.WriteLine(prop.GetValue(ble));

class Enemy
{
    public int x { get; set; } = 20;
}

如您所见,我有一个 Enemy 类,并且我已经找到了如何找到该属性“x”并将其值更改为设置值,在我的示例 20 中,但我的问题是,我如何增加或例如将其值减 2?

【问题讨论】:

  • 你确定你需要反射吗?
  • 是的,我想我愿意,我想在开始时使用动态创建的未知类型的对象制作一个小型控制台游戏,并且由于程序不知道动态对象的所有方法、属性等,我必须使用反射。
  • 首先获取该值,然后将其递增 2 并将其设置为该新值

标签: c# propertyinfo


【解决方案1】:

你已经使用了GetValue()SetValue(),获取它的值,添加到它,然后再次设置新值:

prop.SetValue(ble,(int)prop.GetValue(ble) + 2, null);

【讨论】:

  • 是的,我已经尝试过了,但我得到“运算符'+'不能应用于'object'和'int'类型的操作数”
  • 哦,对了,抱歉,那里没看到。谢谢,就这样!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 2014-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多