¿Cuál es la diferencia entre conversiones? ¿ToInt32() y (int) (giro)?
En primer lugar, me gustaría señalar que en C#, int es en realidad System. Int32, es decir, los 32 bits.
En segundo lugar, (int) y Convertir. ToInt32 son dos conceptos diferentes. El primero es conversión de tipos y el segundo es conversión de contenido. Los dos no siempre son equivalentes. Sabemos que C# proporciona verificación de tipos. No se puede convertir una cadena a un int y la conversión implícita es aún menos posible. Por ejemplo, el siguiente código no funciona:
string text = " 1412 ";
int id = (int)text
Pero lo tenemos claro; , El texto en el código anterior en realidad almacena un valor. Queremos extraer este valor y almacenarlo en forma de int para operaciones futuras, por lo que es necesario convertir el contenido. La conversión de contenido también se denomina interpretación de contenido. Solo necesitamos modificar ligeramente el código anterior para lograr el objetivo:
string text = " 1412 "; ToInt32(text);
Además, también se puede utilizar Int32. Analizar e Int32. Déjame explicarte.
Además, descubriste que Convert tiene muchas versiones sobrecargadas. ToInt32, como Convert. ToInt32 (valor doble); cuando usamos esta versión para convertir doble a Int, ToInt32 verificará si el valor convertido se puede representar por int, es decir, si "cruzará el límite". Si es así, se generará una OverflowException; de lo contrario, se convertirá por usted, pero use (int) para la conversión. Si el valor convertido es mayor que Int32. MaxValue, obtendrá un resultado incorrecto, como el siguiente código: