Usar tipos seguros y salidas legibles marca la diferencia al modelar entidades en C#. Aquí verás cómo una enumeración elimina errores comunes al definir el tipo de escuela y cómo un override de ToString entrega una impresión limpia y útil del objeto. Todo con ejemplos claros y buenas prácticas que evitan fallos por mayúsculas o cadenas mal escritas.
¿Por qué usar una enumeración en C# evita errores de tipo?
Las cadenas permiten valores ambiguos. En cambio, una enumeración limita las opciones a un conjunto controlado y previene errores en tiempo de compilación. Así, el tipo de escuela no acepta variaciones como “Primaria”, “primarias” o “PRIMARIA”. Solo valores válidos.
¿Qué es una enumeración enum y cómo se declara?
// En el mismo namespace de EntidadespublicenumTiposEscuela{ Primaria, Secundaria, Preescolar
}
Clave: declarar como public para usarla fuera del archivo donde se define.
Beneficio: autocompletado confiable y sin cadenas ambiguas.
¿Qué valores numéricos tiene una enum en C#?
publicenumTiposEscuela{ Primaria =0, Secundaria =1, Preescolar =3// no es obligatorio que sea consecutivo.}
Si omites números, C# asigna 0, 1, 2 en orden.
Puedes asignar cualquier entero. No requiere secuencia.
¿Cómo asignar y validar el tipo con TiposEscuela?
Cambia la propiedad de string a la enum creada. Obtendrás tipado fuerte y asignaciones válidas guiadas por el editor. Si la enum no es pública, no aparecerá para usarla.
¿Cómo luce la propiedad en la clase escuela?
publicclassEscuela{publicstring Nombre {get;set;}publicstring Pais {get;set;}publicstring Ciudad {get;set;}publicTiposEscuela TipoEscuela {get;set;}}// Asignación seguraescuela.TipoEscuela = TiposEscuela.Primaria;
Solo permite opciones de TiposEscuela tras ..
Ayuda el autocompletado con control + barra espaciadora.
¿Qué errores previene en tiempo de compilación?
No acepta “primarias”. Es un valor inexistente.
No convierte cadenas a la enum: “no se puede convertir de cadena de texto a tipos de escuela”.
Evita fallos por mayúsculas/minúsculas y variantes tipográficas.
¿Cómo personalizar la impresión con override ToString?
Imprimir el objeto directamente muestra el nombre completo del tipo (por ejemplo, CoreEscuela.Entidades.Escuela). Con override de ToString, defines una salida legible con los datos clave: nombre, tipo, país y ciudad.
¿Qué imprime por defecto un objeto en C#?
El nombre calificado del tipo dentro del namespace.
Porque en C# todo es un object que hereda de System.Object, cuyo ToString() por defecto devuelve el nombre del tipo.
¿Cómo implementar override ToString con interpolación de cadenas?