Avoid nested operators

Metadata

ID: csharp-best-practices/no-nested-ternary

Language: C#

Severity: Notice

Category: Code Style

Description

Do not use nested ternary operators, as it makes the code harder to understand and maintain.

Non-Compliant Code Examples

class MyClass {
    public static void routine(bool a, bool b, bool c)
    {
        var foo = a ? b ? "b": "a" : "c";
    }
}
class MyClass {
    public static void routine(bool a, bool b, bool c)
    {
        var foo = a ? "a" : b ? "b" : "c";
    }
}

Compliant Code Examples

class MyClass {
    public static void routine(bool a, bool b, bool c)
    {
        if (a) {
            if (b) {
                return "ab";
            }
            if(c) {
                return "ac";
            }
        } else {
            if (b) {
                return "b";
            }
            if (c) {
                return "c";
            }
        }
    }
}