Structs are value types, so when a struct object is assigned to a variable, the whole value is assigned, as opposed to reference-based values where only the reference is passed along. This can often lead to significantly different behavior between reference and value types.
It is generally more efficient to pass class instances around in a program than struct-based values because the former only involves a simple reference whereas the latter involves the whole value.
Consider, for example, the method called UpdateTime defined in lines 37–42 of Listing 18.4. It has one formal parameter of type TimeSpan. When we ...