获取类的变量列表

MAR*_*att 0 c#

Class foo
{
   public string name;
   public int age;
   public datetime BirthDate;
}
Run Code Online (Sandbox Code Playgroud)

我有上面的课.

我想要foo类的变量列表.

我试过了

foo fooObj= new foo();
fooObj.GetType().GetProperties()
Run Code Online (Sandbox Code Playgroud)

这给了我0个属性.

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

D S*_*ley 10

你的班级有字段,而不是属性.属性具有getter和setter方法,而字段只存储数据.

尝试

typeof(foo).GetFields()
Run Code Online (Sandbox Code Playgroud)

或将您的字段更改为属性:

Class foo
{
   public string name {get; set;}
   public int age {get; set;}
   public datetime BirthDate {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

或者,要获取字段属性,请使用:

typeof(foo).GetMembers()
           .Where(mi => mi.MemberType == MemberTypes.Field || 
                        mi.MemberType == MemberTypes.Property);
Run Code Online (Sandbox Code Playgroud)