Genericsクラスのタイプ名VB形式で取得する
TypeクラスのNameプロパティで取得してもVBやC#の形式でタイプ名を取得できません。
そこで、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#版も同じように作成できると思います。