Definición y uso de enums
Cree enums con valores explícitos e implícitos.
Definición y uso de enums es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C# Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C# Academy incluye 4 lecciones en total.
¿Qué es una enumeración?
Un enum es un conjunto con nombre de constantes relacionadas. Hace que el código sea más legible al sustituir números mágicos por nombres significativos.
using System;
enum Direction { North, East, South, West }
class Program {
static void Main() {
Direction d = Direction.East;
Console.WriteLine(d);
}
}Declaración de una enumeración
Declare una enumeración con la palabra clave enum y enumere sus miembros. De forma predeterminada, el primero es 0, el siguiente es 1, y así sucesivamente.
using System;
enum Day { Mon, Tue, Wed }
class Program {
static void Main() {
Console.WriteLine((int)Day.Mon);
Console.WriteLine((int)Day.Wed);
}
}Valores subyacentes personalizados
Puede asignar números explícitos. Los miembros sin asignar continúan a partir del valor anterior.
using System;
enum Status { Active = 1, Paused = 5, Stopped }
class Program {
static void Main() {
Console.WriteLine((int)Status.Stopped);
}
}Elección del tipo subyacente
Las enumeraciones usan int de forma predeterminada, pero puede elegir otro tipo entero, como byte, para ahorrar espacio.
using System;
enum Level : byte { Low = 1, High = 200 }
class Program {
static void Main() {
Console.WriteLine((byte)Level.High);
}
}Enumeraciones en variables
Use un tipo de enumeración como cualquier otro tipo para variables, parámetros y campos.
using System;
enum Color { Red, Green, Blue }
class Program {
static void Describe(Color c) {
Console.WriteLine("Color is " + c);
}
static void Main() {
Describe(Color.Green);
}
}Enumeraciones en switch
Las enumeraciones combinan perfectamente con switch para crear ramificaciones claras y exhaustivas.
using System;
enum Signal { Stop, Go, Caution }
class Program {
static void Main() {
Signal s = Signal.Go;
switch (s) {
case Signal.Stop: Console.WriteLine("Halt"); break;
case Signal.Go: Console.WriteLine("Move"); break;
default: Console.WriteLine("Slow"); break;
}
}
}Comparación de valores de enumeración
Los valores de enumeración se comparan con == y con operadores de orden según sus números subyacentes.
using System;
enum Priority { Low, Medium, High }
class Program {
static void Main() {
Console.WriteLine(Priority.High > Priority.Low);
}
}Valor predeterminado de una enumeración
Una enumeración no inicializada equivale al miembro cuyo valor es 0. Es recomendable que 0 sea un valor predeterminado razonable, como None.
using System;
enum Mode { None, Fast, Slow }
class Program {
static void Main() {
Mode m = default;
Console.WriteLine(m);
}
}Impresión de nombres de enumeración
Al llamar a ToString o imprimir una enumeración, se muestra el nombre del miembro, que resulta mucho más claro que un número sin formato.
using System;
enum Fruit { Apple, Banana, Cherry }
class Program {
static void Main() {
Console.WriteLine(Fruit.Banana.ToString());
}
}Las enumeraciones mejoran la legibilidad
En comparación con pasar enteros sin más, las enumeraciones documentan la intención y evitan valores no válidos.
using System;
enum Size { Small, Medium, Large }
class Program {
static int PriceFor(Size s) {
return s == Size.Large ? 12 : 8;
}
static void Main() {
Console.WriteLine(PriceFor(Size.Large));
}
}Dónde declarar enumeraciones
Las enumeraciones pueden declararse en el ámbito del espacio de nombres o dentro de una clase. Manténgalas cerca del código que las utiliza.
using System;
class Program {
enum Phase { Start, Run, End }
static void Main() {
Console.WriteLine(Phase.Run);
}
}Comprobación rápida
Compruebe cuánto entiende sobre las enumeraciones.
Resumen
Un enum define un conjunto de constantes con nombre, lo que mejora la legibilidad frente a los números mágicos. Los miembros toman 0, 1, 2... de forma predeterminada, pero puede asignar valores explícitos e incluso cambiar el tipo entero subyacente.
Las enumeraciones funcionan muy bien en variables, instrucciones switch y comparaciones, muestran los nombres de sus miembros y usan como valor predeterminado el miembro cuyo valor es 0.
Aprende C# con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 93
- Lecciones
- 346
Preguntas frecuentes
¿La lección «Definición y uso de enums» es gratis?
Sí — el texto completo de «Definición y uso de enums» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C# Academy, actualiza a CoddyKit PRO. El curso de C# Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Definición y uso de enums»?
Cree enums con valores explícitos e implícitos. Practicas C# Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar C# Academy?
No se requiere experiencia previa. C# Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Definición y uso de enums»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de C# Academy?
Sí. Cada lección de C# Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Definición y uso de enums
- Enums de flags y combinaciones bit a bit
- Conversiones y análisis de enums
- Iteración de valores de enums