【发布时间】:2020-03-31 20:43:33
【问题描述】:
所以我有一个这样的结构:
public struct Attributes {
public int vitality;
public int intelligence;
public int dexterity;
public int agility;
}
我是这样使用它的:
Attributes a = new Attributes();
Attributes b = new Attributes();
而我想要实现的是:
Attributes c = new Attributes();
c = a + b;
我希望这给我上面指定的这两个 属性的这 4 个变量的总和。
在结构内部,我尝试了这个:
public static Attributes operator +(Attributes x, Attributes y) {
PropertyInfo[] info = typeof(Attributes).GetType().GetProperties();
for (int i = 0; i < info.Length; i++) {
info[i].SetValue(x, (int) info[i].GetValue(x) + (int) info[i].GetValue(y), null);
}
return x;
}
这显然不起作用,给我一个错误。
你们能帮我解决这个问题吗?我能做些什么来实现我想要的?谢谢。
【问题讨论】:
标签: c# struct reflection operator-overloading