物业清单

时间:2014-07-21 16:23:57

标签: c# c#-4.0

有没有办法制作类属性列表?例如,我有一个WPF项目,TextBoxes绑定到字符串属性:(是的,实际版本确实实现了INotifyPropertyChanged ...)

private string lName;
public string LName {
    get { return lName; }
    set { lName = value; }
}

我希望创建一个包含所有这些属性的List(所以我可以做一些事情,比如在for循环中将它们全部设置为空字符串)。我的猜测是不安全的指针,如

unsafe {
    List<String*> myProps = new List<string*>()
    myProps.Add(&lastName);
} 

但是这给了我“不能获取地址,获取大小,或者声明指向托管类型的指针('string')”

并为 int 属性列表&lt; Int32 * &gt;执行此操作yield “你只能在固定语句初始值设定项中取一个未固定表达式的地址”

1 个答案:

答案 0 :(得分:0)

您需要使用Reflection。如果您只想要public properties,则只需执行与以下内容类似的操作:

var type = typeof(MyClass);

foreach (var prop in type.GetProperties.Where(p => p.PropertyType == typeof(string))) {
     // do stuff
}

如果您想要私有(或其他类变量),type方法的重载仍然存在于上面列出的{{1}}变量上。