0
0
C Sharp (C#)programming~10 mins

Type patterns in C Sharp (C#) - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Type patterns
Start with object variable
Check type with pattern
Cast and use
End
The program checks if an object matches a type pattern, then uses it if yes, otherwise skips or does other actions.
Execution Sample
C Sharp (C#)
object obj = 42;
if (obj is int number)
{
    Console.WriteLine(number + 10);
}
Checks if obj is an int, assigns it to number, then prints number plus 10.
Execution Table
StepActionEvaluationResult
1Assign obj = 42obj holds 42 (int)obj = 42
2Check if obj is intobj is int? Truenumber = 42
3Execute inside ifPrint number + 10Output: 52
4EndNo more codeProgram ends
💡 After printing 52, program ends as no more code follows.
Variable Tracker
VariableStartAfter Step 1After Step 2Final
objnull42 (int)42 (int)42 (int)
numberundefinedundefined4242
Key Moments - 2 Insights
Why does 'number' get a value only after the type check?
Because 'number' is declared inside the 'if' condition using the type pattern, it only gets assigned if 'obj is int' is true, as shown in execution_table step 2.
What happens if obj is not an int?
The 'if' block is skipped because the type pattern fails, so 'number' is never assigned and the code inside the block does not run, as implied by the 'No' branch in concept_flow.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 2, what is the value of 'number'?
Aundefined
Bnull
C42
D10
💡 Hint
Check the 'Result' column at step 2 in execution_table where 'number = 42' is assigned.
At which step does the program print output?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Action' and 'Result' columns in execution_table for the printing action.
If obj was a string instead of int, what would happen?
AThe if block is skipped, no output printed
BCompilation error
CThe if block runs and prints the string plus 10
DThe program crashes
💡 Hint
Refer to concept_flow where the 'No' branch skips the block if type pattern fails.
Concept Snapshot
Type patterns check if an object matches a type.
Syntax: if (obj is Type varName) { use varName }
If true, varName holds the casted value.
If false, block is skipped.
Useful for safe type checks and casts.
Full Transcript
This example shows how C# uses type patterns to check an object's type safely. We start with an object variable 'obj' assigned the value 42, which is an int. The 'if' statement uses 'obj is int number' to check if obj is an int. If true, it assigns obj to a new variable 'number' of type int. Inside the 'if' block, we print number plus 10, resulting in 52. If obj was not an int, the block would be skipped and no output printed. This pattern helps avoid manual casting and errors by combining type check and assignment in one step.