Strings zijn onveranderlijk
Behoudsgezinde strings
Dat biedt enkele voordelen. Je kan de string manipuleren zonder dat de inhoud ervan verandert.
String file = @"F:\Cursussen\ASP.NET\Ajax\MAFc\js"; if (file.ToUpperInvariant().Substring(10, 12).EndsWith("EXE") { }
De ToUpperVariant methode retourneert een nieuwe string en wijzigt de karakters in file string niet. De nieuwe string wordt dan geïnspecteerd door EndsWidth. De twee tijdelijke strings die door ToUpperVariant en EndsWidth worden gecreëerd zijn geen lang leven beschoren en de 'garbage collector' zal het geheugen bij de eerst volgende ophaalronde weer vrij maken.
Maar elk voordeel heeft ook zijn nadeel. Als je een hele reeks stringbewerkingen moet uitvoeren worden een hele hoop string objecten op de heap gecreëerd waardoor de 'garbage collector' meerdere keren zal moeten uitrijden. In dat geval kan je dan beter de klasse System.Text.StringBuilder gebruiken.