当它包含在它继承的类型中时,如何最好地访问类特定方法?

时间:2014-03-21 02:53:20

标签: vb.net inheritance

假设我有一个自定义控件类继承了" Control" winforms中的课程。我在运行时生成这些控件并将它们堆积到面板的控件集合中。

现在我想迭代这些自定义控件并执行特定于其类的子。首先想到的是,我想迭代一下面板的控件集合,但这并不好,因为控件类型没有找到我想要的子集。

显然,我可以将它们存储在具有相应类的重复列表中。问题是,是否有更好的方法来执行此操作?就像在各种脚本语言中一样,我可以选择现场转换类型或将整个集合转换为强制转换引用。

1 个答案:

答案 0 :(得分:0)

您可以遍历Control中的所有Panel。使用TryCast运算符确定是否有自定义控件的实例,如果是,请调用您的方法。

这样的事情:

For Each c In panel.Controls
    Dim control As YourCustomControl = TryCast(c, YourCustomControl)
    If Not control Is Nothing Then
        control.YourMethod
    End If
Next