Skip to main content

Case statements do not explicitly handle all enum values

In This Article

CodeRush Classic shows the Case statements do not explicitly handle all enum values code issue if a switch block does not handle all values of the enum passed as a parameter.

#Fix

Add case statements for missing enum elements.

#Purpose

Case statements do not explicitly handle all enum values directs your attention to switch blocks, which do not handle all enum elements, because it usually denotes an incomplete code.

#Example

public string GetDaySchedule(DayOfWeek day)
{
    switch (day)
    {
        case DayOfWeek.Monday:
            return LoadShedule("MondayShedule.dat");
        case DayOfWeek.Tuesday:
            return LoadShedule("TuesdayShedule.dat");
        case DayOfWeek.Wednesday:
            return LoadShedule("WednesdayShedule.dat");
        case DayOfWeek.Thursday:
            return LoadShedule("ThursdayShedule.dat");
        case DayOfWeek.Friday:
            return LoadShedule("FridayShedule.dat");
        default:
            return string.Empty;
    }
}

Fix:

public string GetDaySchedule(DayOfWeek day)
{
    switch (day)
    {
        case DayOfWeek.Monday:
            return LoadShedule("MondayShedule.dat");
        case DayOfWeek.Tuesday:
            return LoadShedule("TuesdayShedule.dat");
        case DayOfWeek.Wednesday:
            return LoadShedule("WednesdayShedule.dat");
        case DayOfWeek.Thursday:
            return LoadShedule("ThursdayShedule.dat");
        case DayOfWeek.Friday:
            return LoadShedule("FridayShedule.dat");
        case DayOfWeek.Saturday:
            return "day off";
        case DayOfWeek.Sunday:
            return "day off";
        default:
            return string.Empty;
    }
}