获取类的变量列表

时间:2014-04-28 12:53:29

标签: c#

Class foo
{
   public string name;
   public int age;
   public datetime BirthDate;
}

我有上述课程。

我想要foo类的变量列表。

我试过

foo fooObj= new foo();
fooObj.GetType().GetProperties()

这给了我0个属性。

显然这不会起作用,因为类foo中没有属性。

2 个答案:

答案 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,而GetTypeobject的方法。

只是做foo.GetType()会抛出错误。