C# Language Immutability Strings and immutability

Help us to keep this website almost Ad Free! It takes only 10 seconds of your time:
> Step 1: Go view our video on YouTube: EF Core Bulk Insert
> Step 2: And Like the video. BONUS: You can also share it!


Immutable types are types that when changed create a new version of the object in memory, rather than changing the existing object in memory. The simplest example of this is the built-in string type.

Taking the following code, that appends " world" onto the word "Hello"

string myString = "hello";
myString += " world";

What is happening in memory in this case is that a new object is created when you append to the string in the second line. If you do this as part of a large loop, there is the potential for this to cause performance issues in your application.

The mutable equivalent for a string is a StringBuilder

Taking the following code

StringBuilder myStringBuilder = new StringBuilder("hello");
myStringBuilder.append(" world");

When you run this, you are modifying the StringBuilder object itself in memory.

Got any C# Language Question?