Szukaj…


Klasa System.String

W C # (i .NET) ciąg jest reprezentowany przez klasę System.String. string kluczowe string jest aliasem dla tej klasy.

Klasa System.String jest niezmienna, tzn. Po utworzeniu jej stanu nie można zmienić.

Tak więc wszystkie operacje wykonywane na łańcuchu, takie jak Substring, Remove, Replace, konkatenacja za pomocą operatora + itd. Utworzą nowy ciąg i zwrócą go.

Zobacz następujący program demonstracyjny -

string str = "mystring";
string newString = str.Substring(3);
Console.WriteLine(newString);
Console.WriteLine(str);

Spowoduje to wydrukowanie odpowiednio string i mystring .

Ciągi znaków i niezmienność

Niezmienne typy to typy, które po zmianie tworzą nową wersję obiektu w pamięci, zamiast zmieniać istniejący obiekt w pamięci. Najprostszym przykładem tego jest wbudowany typ string .

Biorąc następujący kod, który dodaje słowo „world” do słowa „Hello”

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

W tym przypadku dzieje się tak, że nowy obiekt jest tworzony po dodaniu do string w drugiej linii. Jeśli zrobisz to w ramach dużej pętli, może to spowodować problemy z wydajnością aplikacji.

Zmienny odpowiednik string to StringBuilder

Biorąc następujący kod

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

Po uruchomieniu tego modyfikujesz sam obiekt StringBuilder w pamięci.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow