我写了一个小片段来完成工作,但我想知道是否有任何方法可以使其更具可读性或紧凑性?
if (x && !y) var = 2;
else if (!x && y) var = 4;
else if (x && y) var = 24;
else if (!x && !y) var = 0;
SetStatus(true, var);
Run Code Online (Sandbox Code Playgroud)
您可以做的第一件事是将这些案例重新排序为更合乎逻辑的内容:
if (x && y) result = 24;
else if (x && !y) result = 2;
else if (!x && y) result = 4;
else result = 0;
Run Code Online (Sandbox Code Playgroud)
你可以把它分解一下,按 x 分组:
if (x)
{
if (y)
result = 24;
else
result = 2;
}
else
{
if (y)
result = 4;
else
result = 0;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以将这些内部 if 折叠成三元组:
if (x)
{
result = y ? 24 : 2;
}
else
{
result = y ? 4 : 0;
}
Run Code Online (Sandbox Code Playgroud)
哎呀,如果您愿意,您可以将整个事情作为三元组进行:
result = x
? (y ? 24 : 2)
: (y ? 4 : 0);
Run Code Online (Sandbox Code Playgroud)
您还可以使用 switch 表达式:
result = (x, y) switch
{
(true, true) => 24,
(true, false) => 2,
(false, true) => 4,
(false, false) => 0,
}
Run Code Online (Sandbox Code Playgroud)
“可读”有点主观:选择对你和你的团队来说可读的东西。
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |