我如何获得以下类型(它的名称为字符串):
1)未分配的成员?
2)当没有实例且没有使用共享方法时,当前类(我的意思是范围中的那个)?
编辑:想想我,我开始认为1)是不可能的。编辑:2)事实上可能永远不会发生。实际上,当没有父类的实例可用时(但是未赋值的变量是)并且没有使用父类的共享方法时,我的意思是嵌套类的父类
答案 0 :(得分:1)
如果您没有实例,则可以在方法中调用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)
答案 1 :(得分:-1)