是否有方法通过c#中的反射设置数组属性中的单个值?通过反射在数组中设置值
我的属性是这样定义的:
double[] Thresholds { get; set; }
对于“正常”的属性我使用此代码通过反射来进行设置:
PropertyInfo pi = myObject.GetType().GetProperty(nameOfPropertyToSet);
pi.SetValue(myObject, Convert.ChangeType(valueToSet, pi.PropertyType), null);
我会如何改变这种代码设置数组属性在任意位置的值? 谢谢!
BTW:我试图使用索引参数,但似乎只为索引的属性,而不是那些阵列性能的工作...
“改变属性值”是令人困惑的措辞,因为这与“设置属性”(直接或间接)是同义词。实际上,这里的属性值**永远不会改变**(它是相同的参考);它是数组内容的变化。另外,'GetValue'在这里需要第二个参数。 – 2012-03-20 08:09:53
现在修正了GetValue – bluish 2014-02-07 16:10:14