我有这样的课程:
class A
{
public int x;
public int y;
}
class B
{
public int x;
public int y;
}
class C
{
public A a;
public B b;
}
public class Test<T> where T : class, new()
{
public Test()
{
FieldInfo[] x = typeof(T).GetFields().ToArray();
Type y = x[0].GetType();
}
}
当我宣布Test<C> c = new T
时
typeof(T).GetFields().ToArray()
按预期返回两个字段a of type A
和b of type B
。但是当我想获得第一个字段的类型时,就像这样:
Type y = x[0].GetType();
,y的值为System.Reflection.RtFieldInfo
,而不是A
为什么会这样?我需要上课A
,以便我可以得到它的字段......