开发者

VB.NET get type of derived generic list class from list item method

Public Class notifierMain
    Public Class Contacts
        Inheri开发者_JS百科ts 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

When I debug this winforms application I get curType = "notifier.notifierMain+Contacts+row"

I want to the Validate function to know it is in MyContacts. How do I do this?


You're tostring()'ing gettype which returns a property called full name. just check the .Name after get type and that'll have the result you want.

btw: this is a weird example, if you want validate() to return the name of the class you'll have to declare it as a function.

:)


The Me.GetType() is always going to return the type of the class it is enclosed in.

You will need to change Validate to a function and pass in the type of object being validated, but then you might as well call c(0).GetType() outside if the validation anyway!

See MSDN documentation for GetType


You can explore your generic type as shown in this MSDN article: http://msdn.microsoft.com/en-us/library/b8ytshk6.aspx

Hope this helps.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜