2010-10-25 158 views
18

如何比较VB.NET中的类型数据类型? 我的代码:VB.NET中的类型比较

Private Function Equal(ByVal parameter As String, ByVal paramenterName As String, ByVal dataType As Type) As String 

    If dataType = String Then 
     return 1; 
    End If 

End Function 

任何想法?

+0

你可以选择不同的答案,因为你选择了选择的答案在vb.net语法错误? – thecoolmacdude 2017-04-15 02:36:34

回答

5

接受的答案有语法错误。这是正确的解决方案:

If dataType = GetType(String) Then 
    Return 1 
End If 

或者

If dataType.Equals(GetType(String)) Then 
     Return 1 
End If 

或者

If dataType Is GetType(String) Then 
    Return 1 
End If 

最后一个方法可能是检查,因为如果该对象也不会抛出异常的最佳方式一片空白。

另见https://msdn.microsoft.com/en-us/library/system.object.gettype(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

25
If dataType = GetType(String) Then 
    return 1; 
End If 
+3

虽然在VS 2013 Express中尝试这样做时遇到了编译错误,但下面的建议是使用“type GetType()”。 – 2015-01-28 20:58:53

+3

嗨达林,你的解决方案似乎不再有效的VB.NET。作为被接受的答案,你能否更新它,以便它仍然有效? – Sheridan 2015-10-27 11:10:13

+0

语法错误。不应该有分号,但StackOverflow的荒谬规则不会让你在无效答案中编辑一个字符。 – thecoolmacdude 2017-04-15 02:11:25

22
If datatype Is GetType(String) Then 
    'do something 
End If 

替代Is=,一切工作

2

这可能是做VB中的最佳途径。

If dataType Is String Then 
    return 1 
End If 
+0

当你尝试它时,编译过了吗? – LarsTech 2016-07-25 21:14:39

+0

这不起作用。你必须使用GetType(String),因为Is运算符比较两个对象,而String是一个类型而不是对象。 – ohgodnotanotherone 2017-09-04 10:56:23