有没有一种方法可以减少检查是否满足枚举值所需的代码量?

Janice_Feb_1998

我有一个看起来像这样的枚举:

public enum MO
{
    Learn = 0,
    Practice = 1,
    Quiz = 2,
    SM2 = 3
}

public static partial class Extensions
{

    public static bool IsLearn(this MO mode)
    {
        return mode switch
        {
            MO.Learn => true,
            MO.Practice => false,
            MO.Quiz => false,
            MO.SM2 => false,
            _ => throw new InvalidEnumArgumentException("Unhandled value: " + mode.ToString())
        };
    }

    public static bool IsPractice(this MO mode)
    {
        return mode switch
        {
            MO.Learn => false,
            MO.Practice => true,
            MO.Quiz => false,
            MO.SM2 => false,
            _ => throw new InvalidEnumArgumentException("Unhandled value: " + mode.ToString())
        };
    }

    public static bool IsQuiz(this MO mode)
    {
        return mode switch
        {
            MO.Learn => false,
            MO.Practice => false,
            MO.Quiz => true,
            MO.SM2 => false,
            _ => throw new InvalidEnumArgumentException("Unhandled value: " + mode.ToString())
        };
    }

}

在我看来,可能有一种方法可以简化此代码,但是我不确定该如何做。有没有人对我的操作有任何建议,因为每次添加新模式时,现在将要添加12-13行,并且随着开关盒越来越大,它会越来越多。

我将如何解决此问题,请多多指教。

安纳普·沙玛

一个简单的方法是

    public static bool IsLearn(this MO mode)
    {
        return mode==MO.Learn;
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有一种方法可以检查对象的属性是否具有值?

有没有一种方法可以检查数据属性是否存在?

有没有一种方法可以检查var是否正在使用setInterval()?

有没有一种方法可以检查是否有指向目录的符号链接?

有没有一种方法可以检查是否有指向目录的符号链接?

有没有一种方法可以检查流在Java中是否有限?

有没有一种方法可以检查是否有人在听dbus信号?

有没有一种方法可以检查Qt中的QObject指针是否仍然有效?

有没有一种方法可以检查宏的非数字值

有没有一种方法可以检查函数是否在python中是递归的?

有没有一种方法可以将布尔值用作枚举的基础类型?

有没有一种方法可以检查属性是否有设置器?

VBA,有没有一种方法可以检查一个值是否等于数组内的任何值?

有没有一种方法可以创建带有更新的某些字段值的枚举的副本?

有没有一种方法可以评估B +树所需的叶子数量?

有没有一种方法可以减少pygame的更新?

有没有一种方法可以替换不满足条件的值,从而避免nan?

有没有一种方法可以为类的特定属性隐藏一些枚举值?

有没有一种方法可以检查按钮是否被选中?

有没有一种方法可以减少postgres中的余额减去?

有没有一种方法可以比较python中枚举的内容?

有没有一种方法可以检查Ruby中的哈希值是否始终相同,或者仅比较值是否相等?

有没有一种方法可以重用ImageData以减少GC活动?

有没有一种方法可以检查单击的按钮的textContent是否与数组中的任何值匹配?

有没有一种方法可以减少雪管加载时间?

有没有一种方法可以检查序言中元素是否为布尔值?

有没有一种方法可以在POSIX中以原子方式增加信号量和减少另一个信号量?

有没有一种方法可以检查变量是否等于一组值?| C

有没有一种方法可以在调用之前检查操作是否有效?