中易网

C# 用变量名的字符串 更改对应变量的值

答案:2  悬赏:70  
解决时间 2021-01-17 18:20
  • 提问者网友:骑士
  • 2021-01-17 10:29
C# 用变量名的字符串 更改对应变量的值
最佳答案
  • 二级知识专家网友:天凉才是好个秋
  • 2021-01-17 11:44
struct 是传值调用 所以
myFieldInfo.SetValue(CommonSetting, words[1]); 这里有一个隐含的copy动作, 值实际上是被赋给了copy出的另外一个实例



所以使用反射的方式复制给struct的时候 先装箱一下, 看如下例子


全部回答
  • 1楼网友:woshuo
  • 2021-01-17 12:36
CommonSetting里面的那个变量是静态变量么?
追问:不是的
public struct common_setting{
public string image_basepath;
public string calibresult_path;
public string setting_path;
public string applicationbase_path;
}

public common_setting CommonSetting=new common_setting();
结构体的定义在类的外部,CommonSetting实例在类的内部
追答:调用GetField方法时,加上这个参数试试System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public
首先确认一下myFieldInfo这个变量是不是正确的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息