2011-04-04 13 views
13

Estoy un tanto confundido acerca de la presencia de dos aparentemente funciones VB.NET idénticas: CType(args) y Convert.ToType(args). Soy bastante nuevo en .NET y VB en general, por lo que no estoy seguro de si alguno de ellos es un legado de VB6 o si realmente tienen diferentes propósitos/usos/limitaciones. ¿Alguno de ellos es más nuevo/más seguro? ¿Hay razones para usar uno pero no el otro?Convertir vs. CType

¡Salud! =)

+2

Deje de poner el lenguaje de programación en el título de la pregunta ... eso es lo que las etiquetas son para –

+4

No lo volveré a hacer. He visto a otros hacer eso, pensé que podría ser una buena idea. Gracias por la respuesta. – Phonon

Respuesta

10

CType es de VB6 veces y no es el mejor cuando se trata de eficiencia. Debería poder utilizar los métodos Convert.ToXxxx() para la conversión y TryCast() y DirectCast() para la fundición en lugar de CType().

+1

No es cierto. 'CType' nunca estuvo en el VB6. Creo que estás confundiendo esto con 'CInt',' CDbl', etc. –

2

Ver this page on MSDN. (Funciones de conversión, CType, DirectCast y System.Convert Section).

La conclusión de esa sección es el siguiente:

Recomendación: Para la mayoría de las conversiones, utilice los intrínsecos lenguaje palabras clave de conversión (incluyendo CType) por razones de brevedad y claridad y para permitir que las optimizaciones del compilador al convertir entre tipos. Use DirectCast para convertir Object a String y para extraer los tipos de valor encuadrados en variables de objeto cuando se conoce el tipo incrustado (que es, la coerción no es necesaria).

Cuestiones relacionadas