在不知道名字的情况下获取对象的属性值?

use*_*306 0 c#

class A
{
    public string a { get; set; } 
    --and so on--   //lets we have 30-50 class variables//
}
Run Code Online (Sandbox Code Playgroud)

我知道它很糟糕.但是我怎么能通过循环而不知道他们的名字只是通过对象或类的实例获得所有变量的值?

喜欢

for(int i;i<30;i++)
{
    variable[i] = object.? ;
}
Run Code Online (Sandbox Code Playgroud)

fej*_*oco 6

使用反射.

typeof(A).GetFields()
typeof(A).GetProperties()
Run Code Online (Sandbox Code Playgroud)

  • @Ozzy:这取决于你正在做什么 - 以及你正在使用的.NET版本.我相信它在CLR 1和CLR 2之间有很大的改进.你也可以采取一次性命中来创建代表来获取每个字段/属性 - 这可以使它更快,更快. (2认同)