C#의 Builder 및 Buffer 클래스 사용법에 대한 간략한 설명

巴扎黑
풀어 주다: 2017-05-15 09:27:14
원래의
3147명이 탐색했습니다.

이 글에서는 C#의 String StringBuilder와 StringBuffer 세 가지 클래스의 사용법을 간략하게 소개합니다. 필요한 친구는 이를 참고할 수 있습니다.

String, StringBuilder 및 StringBuffer 이 세 가지는 깊이 공부할 가치가 있습니다. 많은 사람들이 이것이 작동하지 않으면 StringBuilder를 사용하면 문제가 되지 않을 것이라고 말할 수 있지만 귀하의 아이디어가 틀렸다고 말할 수는 없지만 더 나은 제안을 드릴 수는 있습니다. 다음은 이 세 가지 범주에 대한 간략한 소개입니다.

문자열 클래스

일상적으로 사용하면서 우리가 작성하는 코드가 쉽게 boxed 될 수 있다는 사실을 간과하기 쉽습니다. 유형을 참조 유형으로). 예를 들어, 매우 일반적인 문자열 연결

string str=9+"test"; 은 여기에서 boxing 작업이 발생한 IL 코드를 보면 알 수 있습니다. 따라서 이를 사용하는 것이 좋습니다(값 유형을 문자열로 변환할 때 ToString 메서드를 사용하는 것을 기억하세요). 따라서 일반적으로 코드를 작성할 때 boxing 및 unboxing 작업에 주의를 기울여야 합니다(나중에 소개되는 일반 컬렉션은 boxing 및 unboxing 작업을 해결하기 위한 것입니다). 박싱 작업 프로세스: 값 유형을 관리되는 힙에 넣어 메모리를 할당합니다. 값 유형 자체에 할당된 메모리 외에도 총 메모리에 유형 개체 포인터 및 동기화 인덱스 블록이 차지하는 메모리도 추가해야 합니다. 그런 다음 해당 유형의 값이 힙 메모리에 다시 할당되고 마지막으로 참조 유형의 개체 주소가 반환됩니다.

메서드를 고안했습니다. 문자열의 불변성) 할당이 완료된 후 문자열이 연결되거나 할당되는 경우 새 메모리 공간이 메모리에 다시 할당됩니다.

StringBuilder 위의 문제를 기반으로 문자열 클래스는 재할당 시 메모리 공간을 재할당하므로 Microsoft에서는 이 문제를 해결하기 위해 StringBuilder 클래스를 시작했습니다. StringBuilder 클래스가 메모리를 재할당하지 않는 방식을 확인할 수 있습니다.

StringBuiler 클래스의 구현을 읽어 보면

클래스의 기본 크기가 16이라는 것을 알 수 있습니다. 즉, StringBuilder 길이를 지정하지 않고 길이를 초과하면 16개 길이이면 메모리를 다시 할당합니다. 구체적인 구현을 보려면 StringBuilder 클래스의 Append 소스 코드를 살펴보세요.

   internal const int DefaultCapacity = 0x10; StringBuilder

일반적으로 StringBuilder를 사용할 때는 적절한 길이를 지정해야 한다는 것을 코드에서 볼 수 있습니다. 소스 코드의 고정 명령문 블록(일반인의 관점에서 가비지 수집을 비활성화하고 변수 주소를 재활용할 수 있음).

요약: 코드를 작성할 때 boxing 및 unboxing 작업에 주의하고 stringBuilder 사용에 주의해야 합니다.

【관련 추천】
1.

특별 추천: "php "Programmer Toolbox" V0.1 버전 다운로드 2.

ASP 무료 동영상 튜토리얼

Li Yanhui ASP 기본 동영상 튜토리얼

위 내용은 C#의 Builder 및 Buffer 클래스 사용법에 대한 간략한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!