如何在C#中获取类中的变量列表

时间:2013-04-10 20:55:24

标签: c# list class variables

如何获取类中所有变量的列表,以便在另一个类中使用,以指示哪些变量将被并且可以由它更改。这主要是因为在更改或添加某些变量时不必重写枚举。

编辑: 我想创建一个具有一些可以修改的统计数据的类(Main),以及另一种类型的类(ModifyingObject),它包含可以更改的所有统计信息的列表以及更改的数量。我想轻松获取主类的变量,并添加修改类更改的变量列表。如果我让不同的统计数据说10个变量,我怎样才能轻松列出ModifyingObject类可以在Main类中更改的所有统计数据。

public class Main{

   float SomeStat = 0;
   string SomeName = "name";

   List<ModifyingObject> objects;

   bool CanModifyStatInThisClas(ModifyingObject object){
      //check if the custom object can modify stats in this class
   }

}

public class ModifyingObject{
  ....
}

1 个答案:

答案 0 :(得分:6)

您可以使用反射。

示例:

class Foo {
    public int A {get;set;}
    public string B {get;set;}
}

...

Foo foo = new Foo {A = 1, B = "abc"};
foreach(var prop in foo.GetType().GetProperties()) {
    Console.WriteLine("{0}={1}", prop.Name, prop.GetValue(foo, null));
}

从这里开始:How to get the list of properties of a class?

属性包含您可能感兴趣的属性(属性)CanReadCanWrite

文档:http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.aspx

但你的问题有点模糊。这可能不是最好的解决方案......在很大程度上取决于你正在做什么。