如何在c#中获得类中的变量列表

本文关键字:变量 列表 | 更新日期: 2023-09-27 18:08:37

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

编辑:我想创建一个类,它有一些可以修改的统计数据(Main),另一种类型的类(ModifyingObject),它有一个列表的所有统计数据,它可以改变多少。我想轻松地获得主类的变量,并添加一个列表,其中包含修改类更改的变量。假设我有10个变量,用于不同的统计数据,我如何轻松列出modifygobject类可以在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{
  ....
}

如何在c#中获得类中的变量列表

您可以使用反射。

的例子:

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有您可能感兴趣的属性(Properties) CanReadCanWrite

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

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