例如:
Sub Test()
Dim car as new MyCar
car.chassis.wheel.radius = 15
Console.WriteLine(car.chassis.wheel.radius)
End Sub
所以问题是。是否可以使用其字符串名称访问该属性 东西(“car.chassis.wheel.radius”)= 15?
答案 0 :(得分:12)
你可以,但不像你的问题那样简洁。
此函数将按名称获取任何对象的任何属性。
Public Function GetPropertyValue(ByVal obj As Object, ByVal PropName As String) As Object
Dim objType As Type = obj.GetType()
Dim pInfo As System.Reflection.PropertyInfo = objType.GetProperty(PropName)
Dim PropValue As Object = pInfo.GetValue(obj, Reflection.BindingFlags.GetProperty, Nothing, Nothing, Nothing)
Return PropValue
End Function
我将错误处理留给您。任何后果:)
答案 1 :(得分:3)
是的,你很容易:
Dim radius As Integer = CallByName(car.chassis.wheel, "radius", Microsoft.VisualBasic.CallType.Get, Nothing)
请参阅this Microsoft页面以供参考。