VB.NET从列表项方法获取派生类通用列表类

时间:2011-03-23 14:47:35

标签: vb.net

Public Class notifierMain
    Public Class Contacts
        Inherits List(Of row)

        Public Sub New()
            Dim r As New row()

            Me.Add(r)

        End Sub


        Public Class row

            Public Sub Validate()

                Dim curType As String = Me.GetType().ToString

            End Sub

        End Class

    End Class

    Public Class MyContacts
        Inherits contacts

    End Class


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim c As MyContacts = New MyContacts()

        c(0).Validate()

    End Sub
End Class

当我调试这个winforms应用程序时,我得到curType =“notifier.notifierMain + Contacts + row”

我希望Validate函数知道它在MyContacts中。我该怎么做?

3 个答案:

答案 0 :(得分:0)

你是tostring()的gettype,它返回一个名为full name的属性。 只需在获取类型后检查.Name即可获得所需的结果。

btw:这是一个奇怪的例子,如果你想要validate()返回你必须将它声明为函数的类的名称。

:)

答案 1 :(得分:0)

Me.GetType()总是会返回它所包含的类的类型。

您需要将Validate更改为函数并传入要验证的对象类型,但是如果验证仍然可以在外面调用c(0).GetType()

有关GetType的信息,请参阅MSDN documentation

答案 2 :(得分:0)

您可以浏览此通用类型,如本MSDN文章中所示: http://msdn.microsoft.com/en-us/library/b8ytshk6.aspx

希望这有帮助。