struct passed to a method to reflect changes made inside it (it won't, unless passed with ref).string methods return new strings instead of mutating in place — s.Trim(); alone does nothing observable.object/non-generic collections (ArrayList, Hashtable) and paying a hidden boxing cost on every value type stored in them.Equals without also overriding GetHashCode (or vice versa), silently breaking Dictionary/HashSet lookups for that type.static field like harmless shared convenience without considering what happens when multiple threads (or concurrent web requests) touch it at once.async method.Practice the type-system reasoning behind these examples — writing real C# solutions and comparing against reference answers — in the code lab, and see how these same lifetime and mutation questions play out at the API layer in Building REST APIs with ASP.NET Core.