10.反射获取静态类的属性 C#例子 WPF例子
获取属性: 使用
BindingFlags.Static | BindingFlags.Public
获取Variable_Library
类中所有静态且公共的属性。遍历属性: 遍历每个属性,获取其名称、类型和值。
生成结果并存储: 将属性的名称、类型和值用制表符分隔,生成字符串并添加到结果列表中。
// 创建字符串列表
List<string> result = new List<string>();// 获取属性
PropertyInfo[] fields = typeof(Variable_Library).GetProperties(BindingFlags.Static | BindingFlags.Public);// 遍历属性
foreach (PropertyInfo field in fields)
{//存储信息string fieldName = field.Name;string fieldType = field.PropertyType.Name;object fieldValue = field.GetValue(null);result.Add($"{fieldName}\t{fieldType}\t{fieldValue}");
}
创建结果列表:
List<string> result = new List<string>();
:创建一个字符串列表,用于存储最终的结果。
获取属性信息:
PropertyInfo[] fields = typeof(Variable_Library).GetProperties(BindingFlags.Static | BindingFlags.Public);
:使用
typeof(Variable_Library)
获取Variable_Library
类的类型信息。调用
GetProperties
方法,传入BindingFlags.Static | BindingFlags.Public
,获取所有静态且公共的属性信息。
遍历属性:
foreach (PropertyInfo field in fields)
:遍历每个属性。
获取属性名称:
string fieldName = field.Name;
:通过PropertyInfo
的Name
属性获取属性的名称。
获取属性类型:
string fieldType = field.PropertyType.Name;
:通过PropertyInfo
的PropertyType
属性获取属性的类型,并通过Name
属性获取类型名称。
获取属性值:
object fieldValue = field.GetValue(null);
:调用GetValue
方法获取属性的值。因为属性是静态的,所以传入null
。
添加到结果列表:
result.Add($"{fieldName}\t{fieldType}\t{fieldValue}");
:使用字符串插值将属性的名称、类型和值用制表符(
\t
)分隔。将拼接后的字符串添加到结果列表中。
总结
这段代码的作用是:
遍历
Variable_Library
类中所有静态且公共的属性。获取每个属性的名称、类型和值。
将这些信息用制表符分隔,并存储到一个字符串列表中。