Если у вас нет экземпляра, тогда в методе вы можете вызвать System.Reflection.MethodBase.GetCurrentMethod().DeclaringType
РЕДАКТИРОВАТЬ
Хорошо, на основании ваших правок это выглядит как выПолучил это:
Public Class ParentClass
Public Class NestedClass
End Class
End Class
Я думаю, что этот метод будет делать то, что вы хотите.Обычно "null is 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)