如何在不使用 C# 中的外部函数的情况下使具有两个参数的条件语句不包含重复语句?

How to make a conditional statement with two parameter do not consists of repetitive statements without using external function in C#?

假设有两个布尔变量 ab,两者真值的每种组合都会导致特定的不同过程。检查此代码:

if(a)
{
    // Block A
    if(b)
    {
        // statement 1
    } 
    else 
    {
        // statement 2
    }
}
else {
    // Block B
    if(b)
    {
        // statement 3
    }
    else
    {
        // statement 4
    }
}

有什么办法可以不做一个单独的函数,让它不重复? (我说的重复是block A和block B有相同的条件但不同的语句)

switch expression 适合你吗?

(a, b) switch {
    (true, true) => ...,
    (true, false) => ...`,
    (false, true) => ...,
    (false, false) => ...,
};

您可以避免像这样嵌套 if

if(a && b)
{
    // statement 1
}
else if(a && !b)
{
    // statement 2
}
else if(!a && b)
{
    // statement 3
}
else
{
    // statement 4
}

我不确定你会认为它更简洁,但我至少觉得它更易读。