Follow the value being copied
A value-type variable stores its value directly. Assigning it copies that value. A reference-type variable stores a reference to an object; assigning it copies the reference, so both variables can point to the same object. The key interview question is often what is copied and what mutation can be observed afterward.
var first = new List<string> { "draft" };
var second = first;
second.Add("reviewed");
// first now also contains "reviewed"
A reference is still passed by value
Passing a reference-type parameter normally copies the reference into the method parameter. Mutating the referenced object is visible to the caller, but reassigning the local parameter does not replace the caller's variable. ref changes the parameter-passing rule and should be used only when that behavior is part of the API.
Choose records by meaning
Records provide value-oriented equality and concise immutable data models. They fit request results and small value-like data when equality should depend on the data. Classes fit entities whose identity and lifecycle matter even when their fields change. Neither keyword makes nested mutable objects deeply immutable.
Interview takeaway
Draw the references or values before answering. State whether the operation copies a value, copies a reference, mutates an object, or reassigns a local variable.