Class foo
{
public string name;
public int age;
public datetime BirthDate;
}
我有上述课程。
我想要foo类的变量列表。
我试过
foo fooObj= new foo();
fooObj.GetType().GetProperties()
这给了我0个属性。
显然这不会起作用,因为类foo中没有属性。
答案 0 :(得分:10)
您的班级有字段,而非属性。属性具有getter和setter方法,而字段只存储数据。
尝试
typeof(foo).GetFields()
或将您的字段更改为属性:
Class foo
{
public string name {get; set;}
public int age {get; set;}
public datetime BirthDate {get; set;}
}
或者,要获取字段和属性,请使用:
typeof(foo).GetMembers()
.Where(mi => mi.MemberType == MemberTypes.Field ||
mi.MemberType == MemberTypes.Property);
答案 1 :(得分:4)
你试过这个:
new foo().GetType().GetFields()
这些是fields
而不是properties
,而GetType
是object
的方法。
只是做foo.GetType()
会抛出错误。