属性列表

本文关键字:列表 属性 | 更新日期: 2023-09-27 18:13:49

是否有一种方法来制作类属性列表?例如,我有一个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属性List<<b>Int32*>产生"您只能在固定语句初始化器中获取非固定表达式的地址"

属性列表

您需要使用Reflection。如果你只想要公共属性,你只需要做以下类似的事情:

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

如果您想要私有(或其他类变量),那么GetFields()方法的重载仍然在上面概述的type变量上。