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

C# 如何在C中获取类中的变量列表#,c#,list,class,variables,C#,List,Class,Variables,如何获得一个类中所有变量的列表,以便在另一个类中使用,以指示哪些变量将被它更改,哪些变量可以被它更改。这主要是为了在更改或添加某些变量时不必重写枚举 编辑: 我想创建一个类,它有一些可以修改的统计信息(Main),还有另一种类型的类(ModifyingObject),它有一个可以更改的所有统计信息的列表,以及可以更改多少。我想很容易地获得主类的变量,并添加一个列表,列出修改类更改了哪些变量。如果我有10个不同统计数据的变量,我怎么能轻松列出主类中ModifyingObject类可以更改的所有统计

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

编辑: 我想创建一个类,它有一些可以修改的统计信息(Main),还有另一种类型的类(ModifyingObject),它有一个可以更改的所有统计信息的列表,以及可以更改多少。我想很容易地获得主类的变量,并添加一个列表,列出修改类更改了哪些变量。如果我有10个不同统计数据的变量,我怎么能轻松列出主类中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{
  ....
}
公共类主{
浮点SomeStat=0;
string SomeName=“name”;
列出对象;
布尔可以修改statinthisclas(修改对象对象){
//检查自定义对象是否可以修改此类中的统计信息
}
}
公共类修改对象{
....
}

您可以使用反射

例如:

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));
}
从这里开始:

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

文件:


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

你可能应该展示一个编码示例,说明你已经尝试了什么或正在尝试什么。。像这样的事情,我感觉会被关闭,因为你没有更具体地说明你真正的需求是什么。。您还想使用反射吗?或者<代码> BindingFlag < /代码>,如果您想拥有一个“动态”枚举,您可能需要考虑使用另一个数据结构或设计模式。但为了让我们帮助您,您需要更具体地说明您尝试执行的操作。您能解释一下自定义对象和代表类的含义吗。所有这些词都太多了,很容易被误解。在unity中升级系统。我有很多东西可以改变一个班级的状态。有些人甚至可能不会更改一个属性,而其他人可能会更改所有属性。@Simeon我对你的评论感到困惑。这个答案有用吗?或者你在找别的东西吗?是的,正是有了这个,我可以编写通用的升级,可以与任何类一起工作,例如,有name属性的类,它将改变这一点。