0

처음으로 C#으로 작업하기 시작했으며 튜토리얼을 살펴 보았을 때 concatenation (console.writeline("Hello" + user) 사용자는 문자열 변수 임)과 place holder (console.writeline("Hello {0}" , user)의 차이점은 user가 문자열 변수) 출력 방법. 차이점이 있습니까 아니면 단순히 어떤 방식으로 쉽게 찾을 수 있습니까?C# 출력에서 ​​연결과 자리 표시간에 차이가 있습니까? 아니면 기본 설정입니까?

+1

는'{0} '형식에 사용 는, 또한 예를 들어'문자열 strHold + = strHold + 일부 string' – MethodMan

+0

에 대한'운영자 Overloading'보고 할 수 있습니다

string output = string.Format("Hello {0}. I have spent {1} seconds trying to figure out that the answer to life is: {2}" , username, executionTime, output); 
는 문자열을 고려하십시오. 그것을 사용하는 후자의 방법을위한 체재(). –

+0

형식 문자열은 읽기 쉽고 수정하기가 쉽습니다. 실제 문자보다 큰 따옴표와 더하기 기호가있는 연결된 문자열을 보는 것은 싫어합니다. – JosephHirn

답변

2

C#과 관련이 없으므로 많은 언어가 두 가지 스타일을 모두 지원합니다. 후자의 형태는 일반적으로 '더 안전'하다고 생각되지만, 구체적인 이유를 인용 할 수는 없습니다. 항목이 두 개 이상의 장소에 나타나야하거나 형식 문자열을 상수로 저장하려는 경우에 유용합니다. 자세한 정보는이 스레드를보십시오 : When is it better to use String.Format vs string concatenation?.

0

매트가 말한 것처럼 장소 지주는 더 간단한 접근법으로 간주되지만 그 이유는 확실하지 않습니다. (나는 그것에 대해 조사해야합니다). 하지만 그렇습니다 한 가지는 퍼스널 홀딩이 약간의 비용이 드는 작업이고 퍼포먼스 측면에서 연결이라는 것입니다. Jon Skeet이 (가) Blog entry "Formatting Strings"을 확인하십시오.

비록 수천 배 정도의 플레이스 홀더를 사용하는 경우에만 성능이 크게 향상되지만,

1

문자열 연결을 사용하는 것과는 대조적으로 문자열 형식을 사용하는 것은 거의 전적으로 가독성에 관한 것입니다. 실제로 그들은 을 수행하고을 수행하고 심지어 수행 방법도 비슷합니다. 이러한 간단한 예를 들어

모두 괜찮아 보이는,하지만 당신은 훨씬 더 좋은 찾고 끝낼 수있는 형식 문자열에 혼합 값의 많은 복잡한 문자열이있을 때 :

string output = "Hello " + username + ". I have spent " + executionTime + " seconds trying to figure out that the answer to life is: " + output; 
:

여기에 더 좋은 예입니다

는 는
관련 문제