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
我甚至不知道如何搜索这种类型的东西。我想反省一下,但一无所获。
这里根本不需要反射。想到两个简单的替代方案:
-
将
driver
转换为具有值BusinessTrip
、LeisureTrip
等的Enum
。 -
无论
driver.BusinessTrip
具有什么类型,都可以使用抽象字符串属性TypeDescription
扩展该类型,并让BusinessTrip
、LeisureTrip
等子类型覆盖该属性,以便它们返回文本描述。