Medium
Engineer
SpeedRun
value-types
reference-types
equality
Struct vs Class: The Equality Surprise
+180 XP · 5 min · attempt 1
Problem
Given:
struct PointS { public int X, Y; }
class PointC { public int X, Y; }
How many of these comparisons evaluate to `true`?
1. new PointS{X=1,Y=2}.Equals(new PointS{X=1,Y=2})
2. new PointS{X=1,Y=2} == new PointS{X=1,Y=2} // does this even compile?
3. new PointC{X=1,Y=2}.Equals(new PointC{X=1,Y=2})
4. object.ReferenceEquals(new PointC{X=1,Y=2}, new PointC{X=1,Y=2})
Count only lines that compile AND evaluate to true. Enter a single integer 0-4.
Starter
// Hint: line 2 won't compile - structs don't get == for free unless you write it.
// Default Equals on a struct does field-by-field via reflection (ValueType.Equals).
// Default Equals on a class uses reference equality.
Your answer
Playing as a guest — you'll be asked for a display name on submit. Log in to keep your XP across devices.