Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

185
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!