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.