需要做一个功能,显示类内的属性名和对应的值。比如有类
Public Class SupervisedParams
Public TestMode As string
Public Time As String
Public TorquePV As Single
Public PrsPV As Single
End Class
这里用了公共字段代替属性,因为VB.NET没有自动属性,必须处理get set 实在麻烦。
需要显示:TorquePV =2.3
PrsPV =3.2 之类。
但一般只能获取类内字段的值,却不能取得这个字段的字符串形式。
后来查到了方法,测试代码如下:
【取得字段名的字符串形式】
Public Shared Sub WriteLine(ByVal params As SupervisedParams)
Dim type As Type = params.GetTypeDim m() As MethodInfo = type.GetMethods【获取方法名】
For Each item In m
Debug.Print(item.Name)
NextDim pi() As PropertyInfo = type.GetProperties【获取属性名】
For Each item In pi
Debug.Print(item.Name)
NextDim fi() As FieldInfo = type.GetFields【获取字段名】
For Each item In fi
Debug.Print(item.Name)
Debug.Print(item.GetValue(params))【还可以方向取得该字段的值】
Next
End Sub
MethodInfo 等几个关键类属于System.Reflection
传说中的反射啊,好高大上。等忙完了系统学习学习。