C# 属性通过反射增加值
我需要知道如何使用反射为属性添加值 例如,我有一个名为Health的属性 我想把这个值增加10C# 属性通过反射增加值,c#,.net,C#,.net,我需要知道如何使用反射为属性添加值 例如,我有一个名为Health的属性 我想把这个值增加10 var prop = typeof (Character).GetProperty(actionParams.PropertyName); var oldValue = (int)prop.GetValue(client.Character); prop.SetValue(client.Character, Convert.ChangeType((oldValue + 10), prop.Proper
var prop = typeof (Character).GetProperty(actionParams.PropertyName);
var oldValue = (int)prop.GetValue(client.Character);
prop.SetValue(client.Character, Convert.ChangeType((oldValue + 10), prop.PropertyType));
但是我犯了错误
System.InvalidCastException:指定的强制转换无效
很可能您名为
Health
的属性不是int
类型,因此强制转换(int)prop.GetValue(client.Character)代码>失败。在哪一行?发布异常。什么是属性类型
?您使用的是什么?这似乎是从方法委托或带有参数的东西调用的,而且您似乎在处理类型。。。为什么呢?难道你不知道它是什么类型的开始吗?向我们展示足够多的代码,我们可以复制/粘贴它来复制它。请展示字符
类的定义。我知道为什么会发生此错误,我只想知道如何避免使用强制转换,因为我想编辑具有不同类型的许多属性。