ALERT

[FREE DEMO] Deploy Your Enterprise Cloud in Minutes

Immutable Type

Definition - What does Immutable Type mean?

An immutable type, in the context of C#, is a type of object whose data cannot be changed after its creation. An immutable type sets the property or state of the object as read only because it cannot be modified after it is assigned during initialization.

Immutable types are designed for efficient memory management and better speed, which makes them suitable for objects with synchronization requirements. Immutability provides better code readability by making changes in program state visibility and isolating the operations that change state from those that do not. Immutable types provides higher security than mutable types.

An immutable type is used where data is to persist after being assigned once, but without any requirement for the data to be changed in the future. Because immutable objects do not change their state, they are more useful in multithread and multiprocess scenarios, as multiple threads may read or write an object, which may cause racing conditions and synchronization issues.

Techopedia explains Immutable Type

Objects of immutable type can be created with the use of the keywords "const" and "readonly". While readonly allows modification of a field within the constructor, const does not. Numbers, strings and null can only be used as const fields, which are truly immutable. Readonly is not truly immutable because it allows writing only once. Thus, it is not a compile-time constant like the const field. Truly immutable objects never change their internal state at all and are therefore inherently thread-safe.

The System.String class is an immutable reference type provided in the .NET framework class library. This class creates a new string object internally for any string manipulation action. The contents of objects of this type do not change, although the syntax makes it appear as if contents can be changed. In addition, string is used as hash table key for the computation of hash values to avoid the risk of corrupting the hash data structure.

The main drawback of immutable types is that they require more resources than other object types.

This definition was written in the context of C#

Techopedia Deals

Connect with us

Techopedia on Linkedin
Techopedia on Linkedin
Tweat cdn.techopedia.com
"Techopedia" on Twitter


'@Techopedia'
Sign up for Techopedia's Free Newsletter!

Email Newsletter

Join thousands of others with our weekly newsletter

Resources
The 4th Era of IT Infrastructure: Superconverged Systems
The 4th Era of IT Infrastructure: Superconverged Systems:
Learn the benefits and limitations of the 3 generations of IT infrastructure – siloed, converged and hyperconverged – and discover how the 4th...
Approaches and Benefits of Network Virtualization
Approaches and Benefits of Network Virtualization:
Businesses today aspire to achieve a software-defined datacenter (SDDC) to enhance business agility and reduce operational complexity. However, the...
Free E-Book: Public Cloud Guide
Free E-Book: Public Cloud Guide:
This white paper is for leaders of Operations, Engineering, or Infrastructure teams who are creating or executing an IT roadmap.
Free Tool: Virtual Health Monitor
Free Tool: Virtual Health Monitor:
Virtual Health Monitor is a free virtualization monitoring and reporting tool for VMware, Hyper-V, RHEV, and XenServer environments.
Free 30 Day Trial – Turbonomic
Free 30 Day Trial – Turbonomic:
Turbonomic delivers an autonomic platform where virtual and cloud environments self-manage in real-time to assure application performance.