티스토리 뷰
코딩을 하다보면 문자열 처리를 하는 경우가 많다.
StringBuilder보다는 string이 가벼울거 같은 느낌적인 느낌에 (string.join 좋아, 짜릿해)
string을 많이 사용하지만, 메모리 낭비의 발생으로 인해 사용시 주의가 필요하다.
예건데, csv 파일을 만들면서 string += ",what" 을 사용하면 개체 생성과 관련한 오버헤드 비용이 증가한다고 할수 있다.
string과 StringBuilder
string
* 네임스페이스: System
* 문자열 개체의 불변성 : string는 생성된 후에 변경할 수 없다. 즉, 문자열 수정은 새로운 string을 반환한다.
* 문자열 개체의 불변성으로 인하여 참조시 주의 해야 한다.
// 예제1)
string s1 = "Hello ";
string s2 = s1;
s1 += "World";
System.Console.WriteLine(s2); // Output: Hello
Stringbuilder
* 네임스페이스: System.Text
* StringBuilder 개체 인스턴스화
예제)
StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Append("Nice to meet you.");
// 예제2)
StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Append("Nice to meet you.");
대신 테스트 해드립니다.
직접하면 좋겠지만 좋은 예제가 있어서 첨부.
결론
잦은 수정이 있는 문자열 사용에서는 StringBuilder 사용을 생활화 하자.!
Reference
https://docs.microsoft.com/ko-kr/dotnet/standard/base-types/stringbuilder
https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/strings/
'Computer Engineering > C#(.Net)' 카테고리의 다른 글
[C#] 직렬화를 이용하여 Deep Copy하기 (0) | 2022.06.15 |
---|---|
[C#] Attribute([])를 알아보자.! (0) | 2022.05.12 |
[C#] VScode에서 C# 콘솔 어플리케이션 만들기 (0) | 2022.04.05 |
[C#] 'Call by value' vs 'Call by reference' (함수 호출 방식) (0) | 2022.04.05 |
WPF / Dependency Property (0) | 2022.03.29 |