수색…


System.String 클래스

C # (및 .NET)에서 문자열은 System.String 클래스로 나타냅니다. string 키워드는이 클래스의 별명입니다.

System.String 클래스는 변경 불가능합니다. 즉, 일단 만들어지면 상태를 변경할 수 없습니다.

따라서 substring, Remove, Replace, + 연산자 등을 사용한 문자열에서 수행하는 모든 작업은 새로운 문자열을 생성하고 반환합니다.

데모를 보려면 다음 프로그램을 참조하십시오 -

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

그러면 stringmystring 각각 인쇄됩니다.

문자열 및 불변성

변경할 수없는 형식은 변경 될 때 메모리에있는 기존 개체를 변경하는 대신 메모리에 새 버전의 개체를 만드는 형식입니다. 가장 간단한 예제는 내장 string 유형입니다.

다음 코드를 취하면 "Hello"라는 단어에 "world"가 추가됩니다.

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

이 경우 메모리에서 일어나는 일은 두 번째 줄의 string 에 추가 할 때 새 객체가 만들어지는 것입니다. 대형 루프의 일부로이 작업을 수행하면 응용 프로그램에서 성능 문제가 발생할 수 있습니다.

string 대한 동등한 변경은 StringBuilder

다음 코드를 가져옴

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

이것을 실행하면 메모리에서 StringBuilder 객체 자체를 수정하게됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow