Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 属性通过反射增加值_C#_.net - Fatal编程技术网

C# 属性通过反射增加值

C# 属性通过反射增加值,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

我需要知道如何使用反射为属性添加值 例如,我有一个名为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.PropertyType));
但是我犯了错误

System.InvalidCastException:指定的强制转换无效


很可能您名为
Health
的属性不是
int
类型,因此强制转换
(int)prop.GetValue(client.Character)失败。

在哪一行?发布异常。什么是
属性类型
?您使用的是什么?这似乎是从方法委托或带有参数的东西调用的,而且您似乎在处理类型。。。为什么呢?难道你不知道它是什么类型的开始吗?向我们展示足够多的代码,我们可以复制/粘贴它来复制它。请展示
字符
类的定义。我知道为什么会发生此错误,我只想知道如何避免使用强制转换,因为我想编辑具有不同类型的许多属性。