我有一个看起来像这样的枚举:
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] 删除。
我来说两句