Repaso: seguridad frente a valores nulos
Parte de la sección Lógica y Flujo del Journey de C# de Coddy. Lección 35 de 66.
Desafío
FácilCrea un método llamado SafelyProcessData que acepte dos parámetros:
- Una cadena
nameque podría ser nula - Un entero anulable
age
El método debe:
- Comprobar si
namees nulo o está vacío mediante patrones adecuados de comprobación de valores nulos - Comprobar si
agetiene un valor - Devolver una cadena con formato de la siguiente manera:
- Si
namees nulo, devolver "No name provided" - Si
nameestá vacío o contiene espacios en blanco, devolver "Invalid name" - Si
agees nulo, devolver "Name: [name], Age: Unknown" - De lo contrario, devolver "Name: [name], Age: [age]"
- Si
¡Asegúrate de utilizar técnicas de programación defensiva para gestionar todos los posibles escenarios de valores nulos!
Pruébalo tú mismo
using System;
class Program
{
// Implementa el método SafelyProcessData aquí
static void Main(string[] args)
{
string nameInput = Console.ReadLine();
string ageInput = Console.ReadLine();
// Maneja el caso donde la entrada es la cadena "null"
string name = nameInput == "null" ? null : nameInput;
int? age = null;
if (ageInput != "null")
{
age = int.Parse(ageInput);
}
string result = SafelyProcessData(name, age);
Console.WriteLine(result);
}
}Todas las lecciones de Lógica y Flujo
1Arrays multidimensionales
Conceptos básicos de arrays 2DDeclaración e inicialización de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DArrays irregularesOperaciones comunes con matricesRepaso: arrays multidimensionales4Técnicas de control de flujo
Retornos anticipadosCláusulas de guardaSentencias de salto (goto)Break y ContinueAplanar condicionales anidados7Operadores lógicos avanzados
Evaluación de cortocircuitoOperadores lógicos condicionalesPrecedencia de operadoresRepaso: operadores avanzados2Toma de decisiones avanzada
Múltiples condicionesLógica booleana complejaComparación entre If y SwitchSentencias Switch anidadasRepaso: decisiones avanzadas5Manejo de excepciones
Fundamentos de Try-CatchTipos de excepcionesMúltiples bloques CatchTrabajo con archivosBloque FinallyUso de Using frente a Try-FinallyExcepciones personalizadasRepaso: manejo de errores3Mejoras de bucles
Rendimiento de buclesIteración de estructuras complejasCada tipo de bucleRefactorización de buclesRepaso: bucles optimizados6Manejo de valores nulos
Conceptos básicos de referencias nulasTipos de valor anulablesPatrones de comprobación de valores nulosProgramación defensivaRepaso: seguridad frente a valores nulosPractica por tu cuenta: Compilador de C# online