获取类字段的类型
本文关键字:类型 字段 获取 | 更新日期: 2023-09-27 18:35:39
>我有这样的类:
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
这样我才能得到它的字段和......
您可以在返回的FieldInfo
上使用FieldType
。
GetType()
返回当前对象的类型,即 FieldInfo
,而不是它描述的类型。
FieldInfo
是一个描述字段及其类型的类;它描述的字段的类型信息存储在 FieldInfo
中。