Challenge - 5 Problems
Reference Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
What is the output of this code?
Consider the following C# code snippet. What will be printed to the console?
C Sharp (C#)
class Box { public int Value; } Box a = new Box(); a.Value = 5; Box b = a; b.Value = 10; Console.WriteLine(a.Value);
Attempts:
2 left
💡 Hint
Remember that classes are reference types in C#.
✗ Incorrect
Both a and b refer to the same Box object. Changing b.Value changes a.Value as well.
❓ Predict Output
intermediate2:00remaining
What is the output of this code with structs?
What will this C# code print to the console?
C Sharp (C#)
struct Point {
public int X;
public int Y;
}
Point p1 = new Point { X = 1, Y = 2 };
Point p2 = p1;
p2.X = 5;
Console.WriteLine(p1.X);Attempts:
2 left
💡 Hint
Structs are value types in C#.
✗ Incorrect
Assigning p1 to p2 copies the data. Changing p2.X does not affect p1.X.
🔧 Debug
advanced2:30remaining
Why does this code print 0 instead of 10?
Examine the code below. It is intended to print 10, but it prints 0 instead. What is the reason?
C Sharp (C#)
class Counter { public int Count; } void Increment(Counter c) { c = new Counter(); c.Count = 10; } Counter myCounter = new Counter(); Increment(myCounter); Console.WriteLine(myCounter.Count);
Attempts:
2 left
💡 Hint
Think about how reference parameters work in C#.
✗ Incorrect
The parameter c is a copy of the reference. Assigning a new object to c does not change the original myCounter reference.
❓ Predict Output
advanced2:30remaining
What is the output of this code using ref keyword?
What will this C# code print to the console?
C Sharp (C#)
class Number { public int Value; } void Change(ref Number n) { n = new Number(); n.Value = 20; } Number num = new Number(); num.Value = 5; Change(ref num); Console.WriteLine(num.Value);
Attempts:
2 left
💡 Hint
The
ref keyword allows the method to modify the caller's reference.✗ Incorrect
Using ref means the method can change the caller's variable to point to a new object.
🧠 Conceptual
expert3:00remaining
How many distinct objects exist after this code runs?
Consider this C# code snippet. How many distinct
Person objects exist in memory after execution?C Sharp (C#)
class Person { public string Name; } Person p1 = new Person { Name = "Alice" }; Person p2 = p1; p2.Name = "Bob"; p2 = new Person { Name = "Charlie" };
Attempts:
2 left
💡 Hint
Count how many times new objects are created.
✗ Incorrect
First, p1 and p2 point to the same object (Alice). Then p2 is assigned a new object (Charlie). So there are two objects: one with Name "Bob" (original) and one with Name "Charlie".