While there are a few immutable types in the framework, such as string and DateTime , language support for user-defined immutable types is poor (although, as you’ll see next, it has improved in C#6 and is likely to further improve in future versions).