DA0001: 연결에 StringBuilder를 사용하십시오.DA0001: Use StringBuilder for concatenations

규칙 IDRule Id DA0001DA0001
범주Category .NET Framework 사용.NET Framework Usage
프로파일링 방법Profiling methods 샘플링Sampling

계측Instrumentation
메시지Message 문자열 연결에 StringBuilder를 사용해 보세요.Consider using StringBuilder for string concatenations
메시지 유형Message type 경고Warning

원인Cause

System.String.Concat 호출이 프로파일링 데이터의 상당한 부분을 차지합니다.Calls to System.String.Concat are a significant proportion of the profiling data. 여러 세그먼트에서 문자열을 구성할 때 StringBuilder 클래스를 사용해 보세요.Consider using the StringBuilder class to construct strings from multiple segments.

규칙 설명Rule Description

String 개체는 변경할 수 없습니다.A String object is immutable. 따라서 문자열을 수정하면 새 문자열 개체와 원래 문자열의 가비지 수집이 생성됩니다.Therefore, any modification to the string creates a new string object and the garbage collection of the original. String.Concat를 명시적으로 호출하든지 아니면 문자열 연결 연산자(예: + 또는 +=.)를 사용하든지 이 동작은 같습니다.This behavior is the same whether you call String.Concat explicitly or use the string concatenation operators such as + or +=.. 문자가 타이트 루프의 문자열에 추가되는 경우처럼 이러한 메서드가 빈번히 호출되면 프로그램 성능이 저하될 수 있습니다.Program performance can decrease if the these methods are frequently called, such as when characters are added to a string in a tight loop.

StringBuilder 클래스는 수정할 수 있는 개체이고, System.String과 달리 이 클래스의 인스턴스를 수정하는 StringBuilder에 대한 대부분 메서드는 같은 인스턴스에 대한 참조를 반환합니다.The StringBuilder class is a mutable object, and, unlike System.String, most of the methods on StringBuilder that modify an instance of this class return a reference to that same instance. StringBuilder 인스턴스에 텍스트를 추가하거나 문자를 삽입할 수 있고, 새 인스턴스를 할당하고 원래 인스턴스를 삭제할 필요 없이 인스턴스에서 문자를 제거하거나 바꿀 수 있습니다.You can insert characters or append text to a StringBuilder instance, and remove or replace characters in the instance without the need for allocating a new instance and deleting the original instance.

경고를 조사하는 방법How to Investigate a Warning

[오류 목록] 창에서 메시지를 두 번 클릭하여 샘플링 프로필 데이터의 함수 정보 뷰로 이동합니다.Double-click the message in the Error List window to navigate to the Function Details View of the sampling profile data. 문자열 연결을 가장 자주 사용하는 프로그램 섹션을 찾습니다.Find the sections of the program that make the most frequent use of string concatenation. 빈번한 문자열 연결 작업을 포함하여 복잡한 문자열 조작에 StringBuilder 클래스를 사용합니다.Use the StringBuilder class for complex string manipulations, including frequent string concatenation operations.

문자열 사용 방법에 대한 자세한 내용은 Microsoft Patterns and Practices 라이브러리에서 5장 - 관리 코드 성능 향상문자열 작업 섹션을 참조하세요.For more information about how to work with strings, the String Operations section of Chapter 5 - Improving Managed Code Performance in the Microsoft Patterns and Practices library.