Genericsクラスのタイプ名VB形式で取得する

TypeクラスのNameプロパティで取得してもVBC#の形式でタイプ名を取得できません。
そこで、Genericsクラスのタイプ名をVB形式で取得するためのメソッドを作成しました。

    Public Function TypeString(ByVal t As Type) As String
        If t.IsGenericType Then
            Dim name As String
            Dim offset As Integer = t.Name.IndexOf("`")
            If offset >= 0 Then
                name = t.Name.Substring(0, offset)
            Else
                name = t.Name
            End If
            Dim params As New List(Of String)()
            For Each paraType As Type In t.GetGenericArguments()
                params.Add(TypeString(paraType))
            Next
            Return String.Format("{0}(Of {1})", name, String.Join(",", params.ToArray()))
        Else
            Return t.Name
        End If
    End Function

取得例

List(Of String)
Dictionary(Of String,String)
List(Of List(Of String))

C#版も同じように作成できると思います。