针对 switch 语句中的枚举进行编程,这是您的方法吗?

2023-11-23

看一下代码片段:

这是我在针对枚举进行编码时通常所做的事情。我有一个带有 InvalidOperationException 的默认转义(我不使用 ArgumentException 或其派生类之一,因为编码是针对私有实例字段而不是传入参数)。

我想知道你们的开发人员在编码时是否也考虑到了这种逃逸......

public enum DrivingState {Neutral, Drive, Parking, Reverse};

public class MyHelper
{
    private DrivingState drivingState = DrivingState.Neutral;

    public void Run()
    {
        switch (this.drivingState)
        {
            case DrivingState.Neutral:
                DoNeutral();
                break;
            case DrivingState.Drive:
                DoDrive();
                break;
            case DrivingState.Parking:
                DoPark();
                break;
            case DrivingState.Reverse:
                DoReverse();
                break;
            default:
                throw new InvalidOperationException(
                    string.Format(CultureInfo.CurrentCulture, 
                    "Drivestate {0} is an unknown state", this.drivingState));
        }
    }
}

在代码审查中,我遇到了许多在默认转义中只有一个break语句的实现。时间长了可能会出问题......


您的问题有点模糊,但据我了解,您是在问我们您的编码风格是否良好。我通常通过可读性来判断编码风格。

我读了代码once我明白了。因此,以我的愚见,您的代码是良好编码风格的示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

针对 switch 语句中的枚举进行编程,这是您的方法吗? 的相关文章

随机推荐