【问题标题】:VB.NET: Get class name of a instanceVB.NET:获取实例的类名
【发布时间】:2011-04-01 19:37:35
【问题描述】:

有没有办法用 VB.NET 获取实例的类名?

【问题讨论】:

    标签: .net vb.net oop class instance


    【解决方案1】:
    Dim type As Type = yourObject.GetType()
    Dim typeName As String = type.FullName
    

    Full name 将为您提供类型的完全限定名称,包括类型的命名空间。

    有关Type 可用功能的更多信息,请参阅MSDN

    【讨论】:

    • 您将如何在与子类的共享级别上执行此操作?
    【解决方案2】:

    试试下面的

    Dim name = Me.GetType().Name
    

    或者对于任何实例

    Dim name = theObject.GetType().Name
    

    【讨论】:

    • 您将如何在共享级别执行此操作?也支持子类?
    【解决方案3】:

    当您使用 asp.net 网站类而不是对象时,这可能会更好。

    Dim ClassName as string = Me.GetType().BaseType.FullName
    

    当您使用桌面应用程序时。

    Dim ClassName as string = Me.GetType().Name
    

    【讨论】:

    • Me.GetType().BaseType.FullName 没有给我类名(对于我编码的类)。它只是返回“System.Object”。但 me.GetType().Name 确实返回了我的班级的名称。
    【解决方案4】:

    使用反射,您可以执行以下操作...

    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString()
    

    我在记录跟踪信息时使用以下内容。这将为您提供类名称,以及所有命名空间和当前方法名称。

    $"{System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString()}.{MethodBase.GetCurrentMethod().Name}"
    

    【讨论】:

      猜你喜欢
      • 2010-10-05
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      相关资源
      最近更新 更多