2

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

编辑:我想创建一个具有一些可以修改的统计信息的类(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{
  ....
}
4

1 回答 1

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));
}

从这里:如何获取类的属性列表?

属性具有您可能感兴趣的属性 (properties)CanRead和。CanWrite

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

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

于 2013-04-10T21:01:00.010 回答