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

Checked and unchecked arithmetic in C Sharp (C#) - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Checked and unchecked arithmetic
Start Arithmetic Operation
Is 'checked' context?
NoPerform unchecked operation
|Yes
Perform checked operation
Overflow?
NoReturn result
Yes
Throw OverflowException
The program decides if arithmetic is checked or unchecked. Checked operations detect overflow and throw an error; unchecked operations ignore overflow.
Execution Sample
C Sharp (C#)
int a = int.MaxValue;
int b = 1;
int c = checked(a + b);
int d = unchecked(a + b);
This code adds 1 to the maximum int value using checked and unchecked contexts to show overflow behavior.
Execution Table
StepOperationContextCalculationOverflow DetectedResult or Exception
1a = int.MaxValueN/Aa = 2147483647Noa = 2147483647
2b = 1N/Ab = 1Nob = 1
3c = checked(a + b)checked2147483647 + 1YesOverflowException thrown
4d = unchecked(a + b)unchecked2147483647 + 1Yes but ignored-2147483648 (wrap around)
💡 Execution stops at step 3 due to OverflowException in checked context; unchecked continues with wrap-around.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4
aundefined2147483647214748364721474836472147483647
bundefinedundefined111
cundefinedundefinedundefinedExceptionException
dundefinedundefinedundefinedundefined-2147483648
Key Moments - 2 Insights
Why does step 3 throw an OverflowException but step 4 does not?
Step 3 uses 'checked' context which detects overflow and throws an exception, as shown in execution_table row 3. Step 4 uses 'unchecked' context which ignores overflow and wraps the value, as shown in row 4.
What does 'unchecked' arithmetic do when overflow happens?
'Unchecked' arithmetic ignores overflow and wraps around the value to fit the data type, demonstrated in execution_table row 4 where the result becomes -2147483648.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of variable 'd' after step 4?
AOverflowException
B2147483648
C-2147483648
D2147483647
💡 Hint
Check the 'Result or Exception' column in row 4 of the execution_table.
At which step does the program throw an OverflowException?
AStep 3
BStep 2
CStep 4
DNo exception thrown
💡 Hint
Look at the 'Overflow Detected' and 'Result or Exception' columns in the execution_table.
If we remove 'checked' from step 3, what would happen to variable 'c'?
AIt would throw OverflowException
BIt would wrap around like 'd'
CIt would be zero
DIt would be unchanged
💡 Hint
Compare the behavior of checked vs unchecked contexts in the execution_table rows 3 and 4.
Concept Snapshot
Checked and unchecked arithmetic in C# control overflow behavior.
Use 'checked' to detect overflow and throw exceptions.
Use 'unchecked' to ignore overflow and wrap values.
Default context depends on compiler settings.
Example: checked(a + b) throws if overflow occurs.
Unchecked allows silent wrap-around.
Full Transcript
This visual trace shows how C# handles arithmetic overflow using checked and unchecked contexts. Variables a and b are set to maximum int and 1. Adding them in a checked context causes an OverflowException at step 3. In an unchecked context at step 4, overflow is ignored and the result wraps around to -2147483648. The variable tracker shows values before and after each step. Key moments clarify why exceptions happen only in checked context and how unchecked wraps values. The quiz tests understanding of variable values and overflow behavior. The snapshot summarizes the key rules and syntax for checked and unchecked arithmetic.