En qué caso en c # (int), cuándo usar Convert.ToInt32

  
 

¿Cuál es el caso en 1.c # (int) Cuándo usar Convert.ToInt32?

Por ejemplo, si hay una cadena de tipo 3, es necesario convertirla en int type (int) 3, aún use Convert.ToInt32 (3), o ambos pueden usarse, ¿por qué?

Respuesta: Ambos se convierten en enteros, pero tienen una longitud diferente. Int es de 16 bits y el siguiente es de 32 bits.

Primero, quiero señalar que en C #, int es en realidad System.Int32, que es de 32 bits.

En segundo lugar, (int) y Convert.ToInt32 son dos conceptos diferentes, los primeros son conversiones de tipos y los últimos son conversiones de contenido, que no siempre son equivalentes. Sabemos que C # proporciona verificación de tipos. No se puede convertir una cadena en un int. La conversión implícita es aún más imposible. Por ejemplo, el siguiente código no funcionará:

string text = " 1412 "; int id = (int) text;

Porque string e int son dos tipos completamente diferentes e incompatibles. Habiendo dicho eso, ¿qué podrías preguntar es compatible? De hecho, puede usar (int) para conversión de tipo fuerte solo para tipos numéricos, como largo, corto, doble, etc., pero debe tener en cuenta el problema de precisión al realizar esta conversión.

Sin embargo, tenemos muy claro que el texto en el código anterior almacena un valor. Queremos extraer este valor y almacenarlo en la forma de int para su posterior operación, luego debe hacer el contenido. Convertido La conversión de contenido también se denomina interpretación de contenido. Podemos lograr el propósito modificando ligeramente el código anterior:

string text = " 1412 "; int id = Convert.ToInt32 (text);

Además de esto, también puede usar Int32.Parse e Int32.TryParse para explicar.

Además, encuentra que Convert.ToInt32 tiene muchas versiones sobrecargadas, como Convert.ToInt32 (valor doble); cuando usamos esta versión para convertir un doble a un int, ToInt32 verificará el valor convertido. Si puede representarse por int, es decir, si se producirá o no "fuera de límites", si lanzará OverflowException, de lo contrario se convertirá para usted, pero use (int) para emitir, si el valor convertido es mayor que Int32.MaxValue, Entonces obtendrá un resultado incorrecto, como el siguiente código:

double d = Int32.MaxValue + 0.1412; int i = (int) d;

Pero no importa qué conversión de valor realice. El problema de precisión debe ser considerado.

Copyright © Conocimiento de Windows All Rights Reserved