我试图以“被动”方式列出我的代码中声明的所有全局变量,而不是手动创建List(of T),然后一一添加到列表中。 我有这个自定义对象,可以说Car.vb,我将其中很多声明为全局对象,并且它们在load事件中逐一填充了所有“ Cars”。但是在我的代码中,我想在所有“汽车”中执行一个循环,好的,我可以管理一个List(of T),但是如果明天我在Global范围内再添加4辆汽车,我必须手动添加这4辆汽车也进入T列表,否则,这4辆新车将不会成为循环的一部分。因此,我开始考虑是否有办法列出代码中声明的特定类型的所有变量。 有什么提示吗?谢谢!
答案 0 :(得分:0)
最后知道如何做到这一点:
Dim Cars_List As New List(Of Car)
Dim assbly As Assembly = [Assembly].GetExecutingAssembly()
Dim types As Type() = assbly.GetTypes()
For Each t As Type In types
If t.Name = "Form1" Then
For Each p As FieldInfo In t.GetFields()
If p.FieldType.Name = "Car" Then
Console.WriteLine(p.Name & " - " & p.FieldType.Name)
Cars_List.Add(CallByName(Me, p.Name, vbGet))
End If
Next
End If
Next