获取类中字段的值,该字段也是另一个类中的字段

本文关键字:字段 另一个 获取 | 更新日期: 2023-09-27 18:11:08

那么,让我们从代码开始,这样我可以更好地解释自己。我有MyClass类,它包含一个int字段,也Foo类包含MyClass作为字段。我想使用反射从MyClass获得int字段的值。

public class Foo
{
 public MyClass myClass;
}
public class MyClass
{
 public int Integer = 1;
}

使用

Foo f = new Foo();
foreach(FieldInfo fi in f.GetType().GetFields())
{
 //lets say now it enumerating myClass field
 foreach(FieldInfo fi2 in fi.FieldType.GetFields())
 {
  return fi2.GetValue(f); //Here I need to use f.myClass, but I can't
  //because it's generic method and I don't know what type I'm currently
  //enumerating, so just typing f.myClass won't make it
 }
}

问题是我如何获得f.myClass.Integer的值?
提前感谢,
保罗

获取类中字段的值,该字段也是另一个类中的字段

在这种情况下使用反射有什么特殊的原因吗?如果你只是想获取实例方法的值,你可以这样做:

Foo f = new Foo();
var myInt = f.myClass.Integer;