如何获取未分配成员的类型名称(作为字符串)



如何获得类型(它的名称作为字符串):

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操作符看到

相关内容

  • 没有找到相关文章

最新更新