Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

182
Vistas
Enumeración con subtipos c#

En primer lugar, quizás este sea un problema debido a un mal diseño. Aquí está mi escenario simplificado:

Tengo una clase llamada Día, representa un día del año, con su fecha y el "tipo" de día.

 public class Day{ Date Key; TypeDay type; }

Entonces el día puede ser un día laborable o festivo:

 public enum TypeDay{ Work, Holiday }

Hasta ahora todo bien, pero ahora los días festivos pueden tener subtipos como días pagados y días no pagados. Necesitaría otra enumeración para representar esos subtipos o agregar todos los subtipos en una sola enumeración (en este ejemplo, tengo 2 días y 2 subtipos, pero en la vida real i tener 50-40 tipos) por lo que esto se vuelve tan desordenado.

 public enum TypeDay{ Work, Holiday_NonPaid Holiday_Paid }

¿Cómo puedo construir esto de una mejor manera, alguna idea?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Los enumeradores no admitieron ese comportamiento. Si cree que se necesita una estructura como esa, puede 'simularla' con una clase estática

 static class TypeDay { public const int Work = 0; public static class Holiday { public const int Paid = 1; public const int NonPaid = 2; } }
over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar indicadores para tratar 'pagado' y 'vacaciones' como propiedades independientes de la enumeración:

 [Flags] public enum TypeDay{ Na = 0, Work = 1, Holiday = 2, Holiday_NonPaid = Holiday, Holiday_Paid = Holiday | Work }

Esto supone que se paga un día de trabajo. Esto le permite comprobar el tipo exacto o si el día tiene una marca específica, isHoliday = type.HasFlag(TypeDay.Holiday) o isPaid = type.HasFlag(TypeDay.Work) .

Pero hay otros enfoques, como usar clases en lugar de enumeraciones. El enfoque más apropiado dependerá del caso de uso exacto y de lo que desee hacer con los valores.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda