如何获取类中所有变量的列表,以便在另一个类中使用,以指示哪些变量将被并且可以由它更改。这主要是因为在更改或添加某些变量时不必重写枚举。
编辑: 我想创建一个具有一些可以修改的统计数据的类(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{
....
}
答案 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?
属性包含您可能感兴趣的属性(属性)CanRead
和CanWrite
。
文档:http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.aspx
但你的问题有点模糊。这可能不是最好的解决方案......在很大程度上取决于你正在做什么。