在我正在研究的VB.NEt程序中,我有以下几行:
Dim objectType = parameters(2).GetType()
' here objectType is of type System.Char
If TypeOf parameters(2) Is Char() Then
enrgAEcrire = parameters(2)
Else
Throw New Exception("@MSG 12,9: INVALID PARAM")
End If
目标是我需要验证第二个参数确实是一个char。但是,如果我在点击这些行之前设置了这样的参数:
Dim myVar As String = "S"c
点击该行时,objectType
= System.Char
但仍会抛出异常。
在验证问题之前,我需要知道它是否是常见的VB.Net错误/行为。
答案 0 :(得分:1)
您应该使用以下内容:
If parameters(2).GetType() Is GetType(Char) Then
enrgAEcrire = parameters(2)
Else
Throw New Exception("@MSG 12,9: INVALID PARAM")
End If
请注意,第二个GetType(GetType(Char)
)等同于C#typeof
;但是第一个GetType
(parameters(2).GetType()
)在VB.NET和C#中使用相同。