我怎樣才能得到的類型(它的名稱爲一個字符串):如何獲取未指定成員的類型名稱(作爲字符串)?
1)一個未分配的成員?
2)當沒有實例可用並且不使用共享方法時,當前類(我的意思是範圍內的那個類)?
編輯:來想想我,我開始認爲1)是不可能的。
編輯:2)可能實際上從來沒有像這樣發生。實際上我是父類中的嵌套類時,沒有父類的實例可用(但尚未分配的變量),並且不使用父類
我怎樣才能得到的類型(它的名稱爲一個字符串):如何獲取未指定成員的類型名稱(作爲字符串)?
1)一個未分配的成員?
2)當沒有實例可用並且不使用共享方法時,當前類(我的意思是範圍內的那個類)?
編輯:來想想我,我開始認爲1)是不可能的。
編輯:2)可能實際上從來沒有像這樣發生。實際上我是父類中的嵌套類時,沒有父類的實例可用(但尚未分配的變量),並且不使用父類
如果你沒有一個實例,然後在方法中可以調用System.Reflection.MethodBase.GetCurrentMethod().DeclaringType
編輯
好吧,根據您的編輯它看起來像你有這個:
Public Class ParentClass
Public Class NestedClass
End Class
End Class
我認爲這種方法會做你想做的。通常「null爲null」並且沒有類型。但是下面的方法通過強制編譯器通過泛型來推斷類型來欺騙(種類)。
Public Shared Function GetParentClass(Of T)(ByVal obj As T) As String
''//Get the type passed in
Dim ThisType = GetType(T)
''//Get the outer type
Dim BaseType = ThisType.DeclaringType
''//Return the parent name
Return BaseType.Name
End Function
然後就可以調用此類似:
Dim X As ParentClass.NestedClass = Nothing
Dim PCName = GetParentClass(X)
Console.WriteLine(PCName)
當前類範圍'Me'在VB.Net。爲什麼不這樣做? –
不會有任何事例,但我改述了這個問題,請參閱上文。 – Peladao