我想看看try cast是否可以将用户输入的答案转换为我指定的类型。
这就是我所拥有的:
Dim t as type = GetType(myType)
Dim ans = console.readline()
If TryCast(ans, t) <> Nothing Then ... 'Doesn't work`
在上面的例子中,intelisense甚至没有显示t。如何使它工作?
答案 0 :(得分:0)
您不需要获取该类型。如果类型ans
的{{1}}可以转换为string
,则以下内容应该有效。当然,在不知道myType
的实现的情况下,我无法判断该转换是否有效。
myType
答案 1 :(得分:0)
我不确定你的myType是否还有其他问题,但你使用Is测试Nothing:
If myObject Is Nothing Then
或
If myObject IsNot Nothing Then
答案 2 :(得分:0)
我想你要检查用户的输入是否为string,int,bool,date等......
因此,如果您想将readline()
转换为特定类型,您可以执行以下操作:
If myType.GetType Is GetType(Integer) Then
'your code...
ElseIf myType.GetType Is GetType(DateTime) Then
....
丹尼斯回复也是一个好主意..
希望有所帮助!
答案 3 :(得分:0)
我想看看try cast是否可以将用户输入的答案转换为该类型 我指定了。
在这种情况下,您不希望Cast
,您希望Parse
用户的答案。让我们说用户输入一个值作为字符串,并且你想将它解析为一个整数,你会这样做:
Dim userInput As String = "123"
Dim intValue As Integer
If Integer.TryParse(userInput, intValue) Then
'User's answer is an int
End If