无法比较类型

时间:2012-01-30 14:18:12

标签: vb.net

我想看看try cast是否可以将用户输入的答案转换为我指定的类型。

这就是我所拥有的:

Dim t as type = GetType(myType)
Dim ans = console.readline()

If TryCast(ans, t) <> Nothing Then ... 'Doesn't work`

在上面的例子中,intelisense甚至没有显示t。如何使它工作?

4 个答案:

答案 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