【发布时间】:2014-10-30 17:17:04
【问题描述】:
我正在寻找一种方法来避免使用 select case 来访问特定列表;我将在一个模块上有大约 90 个列表,并且取决于在列表框中选择的记录(手动填充我的数据库中大多数表的名称,但不是全部)我需要阅读列表中的项目.所以我有这样的事情:
Public RelevantTables_Table001 As List(Of Table001) = New List(Of Table001)
Public RelevantTables_Table002 As List(Of Table002) = New List(Of Table002)
'...
Public RelevantTables_Table999 As List(Of Table999) = New List(Of Table999)
Class Table001
'code for populating RelevantTables_Table001
End Class
Class Table002
'code for populating RelevantTables_Table002
End Class
Class Table999
'code for populating RelevantTables_Table999
End Class
现在我需要阅读相关列表,具体取决于在列表框中选择的项目。例如,如果有人选择Table042,我需要阅读列表中的项目RelevantTables_Table042。
我正在尝试为此使用 DirectCast,但我不知道该怎么做。
【问题讨论】:
-
你是如何填充列表框的?用它更新你的帖子。
-
现在,手动;列表框列出了我数据库中的大部分表。
-
Reflection是一种可能性,因为您可以创建一个"RelevantTables_" & lsb.Text= RelevantTables_Table001 的字符串,这将是该字段的名称。 -
了解一下这些东西是什么会有所帮助。
List(Of Table002)是真正的 Table002 对象列表还是 for 新 Table2 对象的列表?表类是否使用继承? -
我正在阅读有关如何为此使用反射的信息,我只使用它来访问我之前创建的一些 dll。 List(Of Table002) 实际上是 Table002 对象的列表;在加载时,我运行类似 RelevantTables_Table002.Add(New Table002("NameOfTable", "IDfield", "Table Name Alias")) 的东西来用我想要的字符串填充所有列表对象。我只是想找到一种方法来调用列表,而不是用他的名字,而是使用一个变量:读取列表“RelevantTables_”和lsb.Text
标签: vb.net list directcast