2010-10-25 126 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