Challenge 1: struct Copies vs. class References — Possible Solution ==================================================================== Program.cs: struct Point { public int X, Y; } class Wallet { public decimal Balance; } Point p1 = new Point { X = 1, Y = 2 }; Point p2 = p1; // COPIES the value -- p2 is now fully independent p2.X = 99; Wallet w1 = new Wallet { Balance = 100m }; Wallet w2 = w1; // COPIES the REFERENCE -- w1 and w2 point to the SAME object w2.Balance = 999m; Console.WriteLine($"p1: ({p1.X}, {p1.Y})"); // p1 unaffected by p2's change Console.WriteLine($"p2: ({p2.X}, {p2.Y})"); Console.WriteLine($"w1 balance: {w1.Balance}"); // w1 DOES reflect w2's change Console.WriteLine($"w2 balance: {w2.Balance}"); Output: p1: (1, 2) p2: (99, 2) w1 balance: 999 w2 balance: 999 Explanation: Point is a struct, so `Point p2 = p1;` copies p1's actual field values into a brand new, fully independent Point. Modifying p2.X afterward has no effect on p1 at all. Wallet is a class, so `Wallet w2 = w1;` copies only the REFERENCE -- both w1 and w2 point to the exact same underlying object in memory. Modifying w2.Balance therefore modifies the one shared object both variables point to, so w1 sees the change too. WHY THIS WORKS AS AN ANSWER ------------------------------ This directly demonstrates the chapter's own value-type-vs-reference- type distinction with a real, observable difference in behavior -- the struct's copy is independent, the class's "copy" is really a second reference to the same object.