public struct volt_struct
{
public string volt1;
public string volt2;
public string volt2;
public string volt3;
}
private class Injection_class
{
public volt_struct stru1;
public volt_struct stru2;
public volt_struct stru3;
public volt_struct stru4;
public volt_struct stru5;
public volt_struct stru6;
}
public void main()
{
Injection_class Time = new Injection_class();
//Here is code that fills Time with Time values as string type
string s="";
FieldInfo[] fi_inner = Time.stru1.GetType().GetFields();
FieldInfo[] fi_outer = Time.GetType().GetFields();
// This part is wrong, but shows what I want to achive.
foreach(FieldInfo field_outer in fi_outer)
{
foreach(FieldInfo field_inner in fi_inner)
{
s = string.concat(s+field_outer.field_inner.GetValue(Time) + ";");
}
}
}
我想使用反射将存储在 Time 中的字符串连接到字符串 s 中。稍后我必须修改类和结构,我不想调整连接代码。
通过对类中的每个结构使用 foreach 循环,我得到了想要的结果。
foreach (FieldInfo field in fi_inner)
{
s = string.Concat(s + field.GetValue(Time.stru1) + ";");
//field.SetValue(Time, "not measured"); //reset value
}
foreach (FieldInfo field in fi_inner)
{
s = string.Concat(s + field.GetValue(Time.stru2) + ";");
//field.SetValue(Time, "not measured"); //reset value
}
//and so one for each other struct
我想像我给出的第一个例子一样实现它。这可能吗?
大话西游666
相关分类