C# 财产清单

C# 财产清单,c#,c#-4.0,C#,C# 4.0,有没有办法列出类属性?例如,我有一个WPF项目,其中文本框绑定到字符串属性,例如:(是的,实际版本确实实现了INotifyPropertyChanged…) 我想制作一个包含所有这些属性的列表(这样我就可以在for循环中将它们全部设置为空字符串)。我猜是不安全的指针,比如 unsafe { List<String*> myProps = new List<string*>() myProps.Add(&lastName); } 不安全{ Lis

有没有办法列出类属性?例如,我有一个WPF项目,其中文本框绑定到字符串属性,例如:(是的,实际版本确实实现了INotifyPropertyChanged…)

我想制作一个包含所有这些属性的列表(这样我就可以在for循环中将它们全部设置为空字符串)。我猜是不安全的指针,比如

unsafe {
    List<String*> myProps = new List<string*>()
    myProps.Add(&lastName);
} 
不安全{
List myProps=新列表()
myProps.Add(&lastName);
} 
但这让我“无法获取托管类型('string')的地址、大小或声明指向托管类型的指针”


对int属性列表执行此操作会产生“只能在固定语句初始值设定项中获取未固定表达式的地址”

您需要使用反射。如果您只需要,只需执行以下类似操作:

var type = typeof(MyClass);

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

如果您想要私有(或其他类变量),则上述
类型的
变量上仍然存在方法的重载。

我将使用反射。GetType().GetProperties()和SetValue()分别为。。。
var type = typeof(MyClass);

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