Cuando declara una nueva variable en C#, normalmente la inicializará con un tipo de datos particular. Puede ser un número entero, decimal, booleano, cadena u otro tipo de datos.
Puede convertir un valor de un tipo de datos a otro. Por ejemplo, si está convirtiendo una cadena en un número entero, primero deberá analizar el valor. Aquí hay algunas formas diferentes de convertir y analizar valores.
¿Por qué necesita convertir o analizar datos?
Un ejemplo de cuándo puede necesitar analizar datos es si está solicitando la entrada del usuario en una aplicación de consola C#:
Consola. Línea de escritura("Introduzca su edad:");
cadena salario = Consola. LeerLínea();
En este caso, el usuario ingresará un valor entero, pero la aplicación lo almacenará como una cadena por defecto. Si intentara usar el valor de la cadena en cualquier cálculo, obtendría un error de compilación:
Otra razón para convertir tipos de datos es acceder a ciertos métodos que solo están disponibles para un tipo de datos específico. Por ejemplo, la estructura DateTime contiene una función que le permite agregar minutos. Si estuviera usando una cadena en su lugar, no tendría acceso al método:
También puede convertir un valor a otro tipo de datos si necesita seguir la estructura de tipo de datos de un clase creada en C# o un estructura en C#.
Cómo convertir y analizar diferentes tipos de datos
Puede analizar diferentes tipos de datos, como enteros, dobles, tipos booleanos y tipos de fecha y hora.
Cadenas a enteros
Para convertir una cadena en un número entero, utilice el método Parse():
cadena strInt = "45";
En t int32 = Int32.Parse (strInt);
Consola. WriteLine (int32); // salida: 45
También puede analizar la cadena en enteros de diferentes tamaños de bits, como Int16, Int32 o Int64.
En t int16 = Int16. Parse (strInt);
Consola. WriteLine (int16); // salida: 45
Si está utilizando el método Parse(), asegúrese de que el valor de la cadena represente un número entero. Si intenta analizar un valor no entero como "Hola", recibirá un error de análisis en tiempo de ejecución.
cadena cadena invalida = "Hola";
En t resultado no válido = Int32. Parse (Cadena no válida);
También puede usar el método TryParse() para detectar cualquier excepción que pueda ocurrir al analizar:
En t probarParseResultado = 0;
si (Int32.TryParse(cadena invalida, afueraprobarParseResult))
{
Consola.Línea de escritura(probarParseResult);
}
demás
{
Consola. Línea de escritura("Algo salió mal");
}
Para volver a convertir un número entero en una cadena, utilice el método ToString():
cadena intString = 45.ToString();
Consola. WriteLine (intString); // salida: 45
Cuerdas a Dobles
Analizar una cadena a un doble es muy similar a analizar uno a un entero. Usa el método Parse() de la clase Double:
cadena strDoble = "90.5";
doble d = Doble. Analizar (strDouble);
Consola. WriteLine (d); // salida: 90.5
Al igual que con los números enteros, también puede usar el método TryParse() para detectar cualquier error de análisis que pueda ocurrir:
cadena invalidStringDouble = "Hola";
doble probarParseDoble = 0;
si (Doble.TryParse(invalidStringDouble, afueraTryParseDouble))
{
Consola.Línea de escritura(TryParseDouble);
}
Para volver a convertir un doble en un entero, usa el método ToString():
doble dDoble = 90.5;
cadena dCadena = dDoble. Encadenar();
Consola. WriteLine (dString); // salida: 90.5
Dobles a enteros
Puede usar la conversión para convertir un doble en un número entero. Debido a que un número entero solo almacena un número entero, la conversión eliminará los lugares decimales. Por ejemplo, convertir "12.34" solo almacenará el valor "12".
doble dValor = 12.34;
En t iValor = (En t)dValor;
Consola. WriteLine (iValor); // salida: 12
También puede convertir un número entero en un doble:
dValor = (doble)yo valoro;
Consola. Escribir Línea (dValor); // salida: 12
Cadenas y valores booleanos
Para convertir una cadena en un valor booleano, utilice el método Parse() o ToBoolean():
cadena cadenaBool = "Verdadero";
bool b = bool. Analizar (stringBool);// o
b = Convertir. ParaBooleano (stringBool);
Consola. WriteLine (b); // salida: verdadero
Para volver a convertir un valor booleano en una cadena, utilice el método ToString():
cadena strVerdadero = verdadero.Encadenar();
cadena strFalso = FALSO.Encadenar();
Números enteros y valores booleanos
Para convertir un número entero en booleano, utilice el método ToBoolean() para convertir un "1" o un "0" en su valor booleano equivalente. El valor "1" se convertirá en "verdadero" mientras que "0" se convertirá en "falso":
En t bitfalso = 0;
En t bitverdadero = 1;
Consola. WriteLine (Convertir. ToBoolean (falseBit)); // salida: falso
Consola. WriteLine (Convertir. ParaBooleano (trueBit)); // salida: verdadero
También puede pasar un valor entero que no sea "1" o "0" al método ToBoolean(). De forma predeterminada, el método aún devolverá "verdadero":
En t bit invalido = 8;
Consola. WriteLine (Convertir. ToBoolean (Bit no válido)); // salida: verdadero
Para volver a convertir un valor booleano en un número entero, utilice Convert. Método ToInt32(). Convertir "verdadero" devolverá un "1" y convertir "falso" devolverá un "0".
bool iBool = verdadero;
En t bInt = Convertir. ToInt32(iBool);
Consola. WriteLine (bInt); // salida: 1
Cadenas a DateTime
Para analizar una cadena en formato de fecha y hora, use DateTime. Método de análisis ():
FechaHora nuevaFechaHora = FechaHora. Analizar gramaticalmente("01/01/2018 00:00:00");
Consola. WriteLine (nuevaFechaHora); // salida: 01/01/2018 00:00:00
Para volver a convertir una fecha y hora en una cadena, use el método ToString():
Fecha y hora dt = nuevo Fecha y hora(2018, 1, 1);
cadena dtString = dt. Encadenar();
Consola. WriteLine (dtString); // salida: 01/01/2018 00:00:00
Análisis de valores para diferentes tipos de datos
Ahora comprende cómo convertir valores de un tipo de datos a otro. Estas no son las únicas conversiones que existen, así que no dude en obtener más información sobre otros tipos de datos en C#.
También puede explorar cómo funcionan otros tipos de datos en otros lenguajes, como JavaScript.