如何获得类型(它的名称作为字符串):
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)
如果是当前类,可以使用
this.GetType ();
也可以使用typeof操作符看到