Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

183
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda