模块或类的列表(在VB 2010 Express中)

时间:2013-07-08 20:37:05

标签: vb.net

我有一组模块,例如itemOne,itemTwo,...,itemTen,它们本身具有类似的方法和子类。我使用“Delegate”和“Enum”来跟踪这些方法,并有一个系统的方法在for循环中调用它们。但是,我不知道如何制作模块的集合或数组,目的是能够遍历它们。

以下结束目标,伪代码

For Num = One to Ten
     With item<Num> % This could be itemOne, or itemTwo, etc. I do NOT know how to do this
          % Call function with the help of for loops. I know how to do this
     End With
End For

如果有一种方法可以使用字符串数组,并在运行时将它们作为代码执行,那将会有所帮助。类似的东西 - 调用String2Code(“ItemOne”)。Something.SomeMethod(),其中SomeMethod是一个子程序。

它不一定必须是String2Code类型的实现。一般来说,我正在寻找一种方法来跟踪一系列“代表模块”。当然,“Delegate”仅适用于VB中的Sub / Function,我一直无法找到以类似方式处理模块的技术。如果这些模块的地址指针存储在一个数组中,我应该可以遍历它们。

我将不胜感激任何建议。谢谢。

1 个答案:

答案 0 :(得分:0)

回想起来,这可能更简单。在我看来,你应该让他们成为课程而不是模块...

请注意,我使用下面的一个,两个和三个来表示不同类型的对象。

Dim col as List(Of Object)
col.add(One)
col.add(Two)
col.add(Three)
For i as integer = 0 to col.Count -1
    If typeof col(i) is [ModuleType1] Then
       CTYPE(col(i), ModuleType1).SubClass.Method()
    Else If TypeOf col(i) is ModuleType2 Then
       CTYPE(col(i), ModuleType2.SubClass2.Method2()
    End If
Next

或者,您可以只创建一个对象数组。

Dim col() as Object = {One, Two, Three}

理想情况下,您会避免使用Object,而是所有模块都会使用继承将类似方法组合在一起。它们可以使用ParentObject而不是Object来保持类似的功能,而不是一直使用它。

这显然是泥吗?

史蒂夫