Discover how a simple pattern can make your code cleaner and less buggy!
Why Constant patterns in C Sharp (C#)? - Purpose & Use Cases
Imagine you have a list of different shapes, and you want to check if each shape is a circle. Without constant patterns, you might write many if-else statements comparing each shape to a specific value.
This manual way is slow and messy. You write repetitive code, making it easy to make mistakes or forget a case. It's hard to read and hard to change later.
Constant patterns let you check if a value matches a specific constant directly in a clean, simple way. This makes your code shorter, clearer, and less error-prone.
if (shape == "circle") { /* do something */ } else if (shape == "square") { /* do something else */ }
if (shape is "circle") { /* do something */ }
It enables writing clear and concise checks against fixed values, making your code easier to understand and maintain.
Checking user input commands like "start", "stop", or "pause" directly with constant patterns to decide what action to take.
Manual comparisons are repetitive and error-prone.
Constant patterns simplify checking fixed values.
Code becomes cleaner, easier to read, and maintain.
Practice
switch statement?Solution
Step 1: Understand constant pattern purpose
Constant patterns compare a value to a fixed constant to see if they are equal.Step 2: Apply to switch statement
In a switch, constant patterns match cases where the value equals the constant exactly.Final Answer:
It checks if the value exactly matches a fixed constant. -> Option BQuick Check:
Constant pattern = exact value check [OK]
- Thinking it checks ranges instead of exact values
- Confusing with type patterns
- Assuming it checks inequality
if statement in C#?Solution
Step 1: Recall constant pattern syntax
The syntax usesisfollowed by the constant value to check equality.Step 2: Check each option
if (x is 10) { } usesif (x is 10), which is correct. Others have syntax errors.Final Answer:
if (x is 10) { } -> Option CQuick Check:
Correct constant pattern syntax = if (x is 10) [OK]
- Using assignment '=' instead of 'is'
- Placing 'is' incorrectly
- Adding extra operators
int number = 5;
switch (number)
{
case 3:
Console.WriteLine("Three");
break;
case 5:
Console.WriteLine("Five");
break;
default:
Console.WriteLine("Other");
break;
}Solution
Step 1: Identify the value of 'number'
The variable 'number' is assigned the value 5.Step 2: Match the switch cases
The switch checks cases 3 and 5. Since number is 5, it matches case 5 and prints "Five".Final Answer:
Five -> Option AQuick Check:
number = 5 matches case 5 [OK]
- Choosing default instead of matching case
- Confusing case values
- Ignoring break statements
object obj = 10;
if (obj is 10)
{
Console.WriteLine("Ten");
}Solution
Step 1: Understand constant pattern with object
Constant patterns can be used with object type to check if it equals a constant value.Step 2: Check code correctness
The code usesobj is 10correctly to check if obj equals 10. This is valid syntax and logic.Final Answer:
No error, code is correct -> Option AQuick Check:
Constant pattern works with object type [OK]
- Assuming cast needed before pattern
- Thinking constant pattern needs variable
- Confusing with type patterns
var numbers = new List<int> {1, 7, 3, 7, 5};
int count = 0;
foreach (var n in numbers)
{
// Fill in the blank
}
Console.WriteLine(count);Solution
Step 1: Understand the goal
We want to count how many times 7 appears in the list.Step 2: Use constant pattern to check for 7
The correct constant pattern isif (n is 7)which checks if n equals 7, then increments count.Final Answer:
if (n is 7) count++; -> Option DQuick Check:
Constant pattern for 7 increments count [OK]
- Assigning count instead of incrementing
- Checking type instead of value
- Counting non-7 values
Ready to prove it?
Pass the test and this pattern moves unknown
