【发布时间】:2017-03-30 09:07:21
【问题描述】:
这里是示例,CommandType 是一个枚举。这是一个无标志枚举。
CommandType cmdType = CommandType.back;
if (cmdType == CommandType.back || cmdType == CommandType.forward || cmdType == CommandType.previous || cmdType == CommandType.home)
{
//do something
}
有什么方法可以简化“if”语句?
【问题讨论】:
-
如果你不想要标志可能你想要扩展方法
-
没有。继续使用
if并在每个||之前或之后转到新行。至少它会变得更具可读性。 -
FlagAttribute产生不同的.ToString输出,您仍然可以在没有此属性的枚举上使用.HasFlag方法。 -
取决于简化是什么意思。您可以执行
new[] {CommandType.back, CommandType.forward, CommandType.previous, CommandType.home}.Contains(cmdType)之类的操作,但这是否“更简单”?怀疑。