小编koo*_*osk的帖子

C#Switch语句重构

以下代码的目的是确定特定日期是否符合"周末",即周四中午12:00,最少2天和周一中午12:00之前

有没有更好的办法?If-Else变得丑陋,而战略模式对此来说太过分了.

public bool ValidateWeekend(DateTime pickupDate, DateTime dropoffDate)
    {
        TimeSpan ts = dropoffDate.Subtract(pickupDate);

        if (ts.TotalDays >= 2 && ts.TotalDays <= 4)
        {
            switch (pickupDate.DayOfWeek)
            {
                case DayOfWeek.Thursday:
                    if (pickupDate.Hour >= 12)
                    {
                        switch (dropoffDate.DayOfWeek)
                        {
                            case DayOfWeek.Sunday:
                                return true;
                            case DayOfWeek.Monday:
                                if (dropoffDate.Hour <= 12)
                                {
                                    return true;
                                }
                                return false;
                        }
                    }
                    break;
                case DayOfWeek.Friday:
                    switch (dropoffDate.DayOfWeek)
                    {
                        case DayOfWeek.Sunday:
                            return true;
                        case DayOfWeek.Monday:
                            if (dropoffDate.Hour <= 12)
                            {
                                return true;
                            }
                            return false;
                    }
                    break;
                case DayOfWeek.Saturday:
                    switch …
Run Code Online (Sandbox Code Playgroud)

c# refactoring switch-statement

4
推荐指数
1
解决办法
3281
查看次数

标签 统计

c# ×1

refactoring ×1

switch-statement ×1