I’m learning about immutability (specifically in C#) and I can’t understand the examples out there stating that making an object immutable brings real benefits (besides a shared object in a multi threaded environment, which the benefits are pretty clear).
The most talked example in my readings is DTOs. It’s said that DTOs are a great example of a use case where the object should be immutable, but the reasons of it are not explained (or at least I couldn’t understand). Okay, DTOs shouldn’t change, but what are the benefits from enforcing that those types are immutable? Is it just that by making a DTO immutable, we are being more descriptive about the role of the object in the system? Does it goes beyond that?