C# Language
Oföränderlighet
Sök…
System.String klass
I C # (och .NET) representeras en sträng av klassen System.String. Den string
sökord är ett alias för den här klassen.
System.String-klassen är oföränderlig, dvs det kan inte ändras när det skapats.
Så alla operationer du utför på en sträng som Substring, Ta bort, Ersätt, sammankoppling med +
operator etc skapar en ny sträng och returnerar den.
Se följande program för demonstration -
string str = "mystring";
string newString = str.Substring(3);
Console.WriteLine(newString);
Console.WriteLine(str);
Detta kommer att skriva ut string
respektive mystring
.
Strängar och oföränderlighet
Oändliga typer är typer som när de ändras skapar en ny version av objektet i minnet, snarare än att ändra det befintliga objektet i minnet. Det enklaste exemplet på detta är den inbyggda string
.
Med följande kod läggs "världen" till ordet "Hej"
string myString = "hello";
myString += " world";
Det som händer i minnet i detta fall är att ett nytt objekt skapas när du lägger till string
i den andra raden. Om du gör detta som en del av en stor slinga finns det potentialen för att detta kan orsaka prestandaproblem i din applikation.
Den muterbara motsvarigheten för en string
är en StringBuilder
Tar följande kod
StringBuilder myStringBuilder = new StringBuilder("hello");
myStringBuilder.append(" world");
När du kör detta ändrar du själva StringBuilder
objektet i minnet.