2010-10-25 13 views
18

¿Cómo puedo comparar el tipo de datos de tipo en VB.NET? Mi código:Comparación de tipos en 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 

¿Alguna idea?

+0

se puede elegir una respuesta diferente que la respuesta seleccionada ha elegido tiene un error de sintaxis en vb.net? – thecoolmacdude

Respuesta

5

La respuesta aceptada tiene un error de sintaxis. Aquí está la solución correcta:

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

O

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

O

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

La última forma es probablemente la mejor manera de comprobar porque no va a lanzar una excepción si el objeto es nulo.

Véase también 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

Obtuve un error de compilación al probar esto en VS 2013 Express. Sin embargo, la sugerencia a continuación de utilizar "tipo Is GetType()" me ha funcionado. –

+3

Hola Darin, parece que tu solución ya no es válida en VB.NET. Como respuesta aceptada, ¿puede actualizarla para que siga siendo válida? – Sheridan

+0

Error de sintaxis. No debería tener punto y coma, pero las reglas ridículas de StackOverflow no te permitirán editar un personaje en una respuesta no válida. – thecoolmacdude

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

Sustituto Is para = y todo funciona

2

Esta es probablemente la mejor manera de hacerlo en VB.

If dataType Is String Then 
    return 1 
End If 
+0

¿Compiló esto cuando lo intentó? – LarsTech

+0

Esto no funcionará. Debe utilizar GetType (String), porque el operador Is compara dos objetos y String es un tipo, no un objeto. – ohgodnotanotherone

Cuestiones relacionadas