2011-05-02 3 views
0

C#에서 인덱싱 된 자리 표시 자 구문을 사용할 수있는 곳이 여러 곳 있습니다.인덱싱 된 자리 표시 자의 효율성

// Assume some object is available with 2 string properties 
Console.Writeline("Hello {0}, today is {1}", obj.Username, obj.DayOfWeek); 

문자열 연결 연산자를 사용하여 문자열을 작성하는 것보다 효율적입니까? 즉.

Console.Writeline("Hello " + obj.Username + " today is " + obj.DayOfWeek); 

분명히 {0} ... {n} 구문은 뭔가 복잡한 일을하는 경우 청소기 -하지만 어떤 코드가 더 효율적입니다

답변

1

그럼 첫 번째 버전은 구문 분석 할 수있다 (낮은 메모리 풋 프린트 및 또는 실행 시간?) 실제 문자열 연결을 수행하기 전에 문자열을 읽고 해석하십시오. 따라서 첫 번째 방법은 느리고 잠재적으로 더 많은 메모리를 사용합니다.

그러나 엄청난 양의 문자열 처리를 수행하지 않는 한 문제가되지는 않습니다.

1

생각하지 마시고 포맷팅을 사용하십시오. 이러한 방법으로 메모리/실행 시간을 걱정하면 다른 문제가 발생합니다.

+0

한 줄의 코드와 관련하여 걱정할 필요가 없다는 것을 알고 있습니다. 그러나 수백만 개의 문자열에서 일부 문자열 연산을 수행해야한다면 어떻게해야할까요? – debracey

+2

이 경우,'StringBuilder'를 사용하십시오. – Femaref

관련 문제