在.NET中分配的变量的名称

时间:2015-09-08 14:41:48

标签: vb.net class reflection

VB2010。甚至不确定这是否可行,但出于调试目的,我想打印出分配给主变量的变量的名称(两者都是类)。

        Dim mstTripClass As Trip = Nothing
        Select Case sc
            Case "0"
                mstTripClass = driver.BusinessTrip
            Case "7", "8"
                mstTripClass  = driver.LeisureTrip
            Case "10"
                mstTripClass = driver.OtherTrip
            Case Else
                Throw New Exception("Invalid trip class")
        End Select

        Debug.Print("Trip class=" & mstTripClass.GetType.ToString)

打印出来

        Trip class=MyCompany.MyDept.MyApp.Trip

我想要打印的是:

        Trip class=BusinessTrip

我甚至不确定如何搜索此类事物。我搜索了反射但是空了。

1 个答案:

答案 0 :(得分:1)

根本不需要反思。想到两个简单的替代方案:

  1. driver变为Enum,其值为BusinessTripLeisureTrip等。

  2. 无论driver.BusinessTrip类型是什么,都使用抽象字符串属性TypeDescription扩展该类型,并使BusinessTripLeisureTrip等子类重写该属性,以便他们返回文字说明。