Conditionals in C#
Control flow with if/else, switch statements, switch expressions (C# 8+), ternary operator, pattern matching in conditions, and guard clauses.
if, else if, else
1. Basic if Statement
An `if` block runs only when its condition is `true`.
2. if / else if / else Chain
Chain multiple conditions with `else if`. The `else` block runs if none of the conditions match.
3. Nested if Statements
An `if` inside another `if` — useful for checking multiple related conditions.
Boolean Conditions in C#
1. C# Requires Strict bool
Unlike JavaScript, C# does not have truthy/falsy. Every `if` condition must be a `bool` expression.
2. "Falsy-like" Checks in C#
Common patterns for checking empty, null, or zero values in C#.
Ternary Operator
1. Basic Ternary
`condition ? valueIfTrue : valueIfFalse` — a compact one-line conditional expression.
2. Ternary for Null Safety
Use ternary to provide fallback values for null — though `??` is cleaner for null specifically.
3. Nested Ternary (Use Carefully)
Ternaries can be nested but become hard to read quickly. Prefer `if/else` for more than two outcomes.
switch Statement
1. Basic switch Statement
Match a value against `case` labels. Each `case` needs a `break` to prevent fall-through.
2. switch Fall-through (Multiple Labels)
Stack multiple `case` labels to share the same block — the only allowed form of fall-through in C#.
3. switch on String
C# `switch` works on strings — the comparison is case-sensitive.
switch Expression (C# 8+)
1. Arrow Syntax (No Fall-Through)
C# 8+ switch expressions use `=>` arrows, return a value, require no `break`, and must be exhaustive.
2. Multiple Values per Case
Use `,` to match multiple values in a single arm.
3. when Guards
Add `when` to a case arm to apply an extra condition.
Guard Clauses
1. Guard Clause in Methods
Return early at the top of a method when preconditions fail — avoids deep nesting.
2. Guard Clause in Loops (continue)
Use `continue` to skip the rest of a loop iteration early — the loop equivalent of a guard clause.
Best Practices
1. Recommended Best Practices
Follow these patterns for clean, idiomatic C# conditional code.