【发布时间】:2011-06-03 23:22:55
【问题描述】:
我有这个if-else 声明,它可以满足我的需求。正如你应该知道的那样,它的作用非常简单。
if (width != null && height != null)
{
if (top != null && left != null)
{
ret.type = VMLDimensionType.full;
}
else
{
ret.type = VMLDimensionType.size;
}
}
else
{
if (top != null && left != null)
{
ret.type = VMLDimensionType.positon;
}
else
{
ret.type = VMLDimensionType.unset;
}
}
enum 指的是:
private enum VMLDimensionType
{
unset = 0,
full = 1,
size = 2,
position = 3
}
它是如此简单,我相信有一种更简洁、更易读的方式来表达这一点。
NB 如果不是因为 VS 默认强加的荒谬的“每行一个大括号”规则,我可能不会这么烦恼。例如,在 VB 中,我可能会从这个代码块中丢失大约 10 行! (对此有什么想法吗?)
【问题讨论】:
-
如果我没记错的话,VB.NET 版本会短 7 行,没有大括号的版本会短 12 行。
-
你能发布
VMLDimensionType枚举吗?如果它是一个 Flags 枚举,它可能会更简单。 -
@Ani 更新了枚举定义
-
@El:好吧,只需更改默认值即可。 VS 幸运地允许这样做。像这样将每个大括号放在额外的行上确实是 浪费并且不利于可读性(恕我直言)。
标签: c# refactoring code-snippets code-readability conditional-statements