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

Sim*_*eon 2 c# variables class list

我如何获得一个类中所有变量的列表,以用于另一个类中以指示例如哪些变量可以被其更改。这主要是因为在更改或添加某些变量时不必重写枚举。

编辑:我想创建一个具有一些可修改的统计信息的类(主),以及另一种类型的类(ModifyingObject),该类具有可更改的数量以及数量的列表。我想轻松地获取主类的变量,并添加修改类会更改哪些变量的列表。如果我假设有10个变量用于不同的统计信息,那么我如何轻松地列出Maining类中ModifyingObject类可以更改的所有统计信息。

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{
  ....
}
Run Code Online (Sandbox Code Playgroud)

tnw*_*tnw 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));
}
Run Code Online (Sandbox Code Playgroud)

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

属性具有您可能感兴趣的属性(properties)CanReadCanWrite

文档:http : //msdn.microsoft.com/zh-cn/library/system.reflection.propertyinfo.aspx

不过,您的问题有点含糊。这可能不是最佳解决方案……在很大程度上取决于您的工作。