2009-09-30 18 views

Respuesta

13

Convert.ToInt32() intentará convertir cualquier cosa, ya sea char, doble, objeto, qué tiene usted en un Int32. Int32.Parse() solo funciona para cadenas.

EDIT: En respuesta al comentario de OP, que tiene una cita tomada from this thread:

Básicamente la clase Convert hace que sea más fácil para convertir entre toda la base tipos.

El Convert.ToInt32 (String, IFormatProvider) debajo llama al Int32.Parse. Por lo tanto, la única diferencia es que si se pasa una cadena nula a Convertir devuelve 0, mientras que Int32.Parse arroja un ArgumentNullException.

Es realmente una cuestión de elección lo que usted utiliza.

+1

http://arun-ts.blogspot.com/2008/05/convertint32-vs-int32parse.html – madcolor

+0

También puede ser que desee para tener en cuenta las advertencias ... por ejemplo: 'Convert.ToInt32 ('9')' dará como resultado 57 (el valor ascii) donde 'Convert.ToInt32 (" 9 ")' dará como resultado 9. Si hay una conversión implícita entonces la conversión será utilizada. –

+0

Hola, Matthew. Si tengo un valor de cadena y necesito convertirlo en el valor entero, entonces cuál es el mejor para usar ... – Vijjendra

2

Convert.ToInt32 convertirá en null0; Int32.Parse lanzará una excepción si la pasa null. Además, as Matthew Jones said, Int32.Parse solo funciona para cadenas.

Ver this article para más información

4

Ampliando la respuesta de Mateo.

Convert.ToInt32 permite conversiones definidas por el usuario de una manera extensible. Para cualquier conversión no predefinida (principalmente primitivas), la clase Convert comprobará y verá si el tipo implementa IConventible y, si es así, lo usa para permitir que el objeto defina su propia conversión a Int32 (y muchos otros tipos).

0

De acuerdo con MSDN Parse() se usa para string to int donde Convert es mucho más versátil para las conversiones.

Int32.Parse()

Convert.Int32() debe ser su principal opción

Cuestiones relacionadas