有没有办法制作类属性列表?例如,我有一个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 “你只能在固定语句初始值设定项中取一个未固定表达式的地址”
答案 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}}变量上。