2017-04-20 26 views
3

저는 C#을 초보자입니다. 지금까지 필자는 문자열 값에 변수를 포함시키는 데 사용할 수있는 몇 가지 방법을 생각해 냈습니다. 그 중 하나는 C# 6.0에서 소개 된 String Interpolation입니다. 다음 코드는 문자열 보간의 예입니다.C# - 문자열 보간

int number = 5; 
string myString = $"The number is {number}"; 

내가 알고 싶은 것은 문자열을 형식화하기 위해 다음과 같은 방법으로 문자열 보간을 사용하는 이점이 있는지 여부입니다.

// first way 
int number = 5; 
string myString = "The number is " + number; 

//second way 
int number = 5; 
string myString = string.Format("The number is {0}", number); 
+0

@KQa을 - 나는 것 동의하지 않는다. OP는 문자열 보간법을 알고 있으며, 보닛 아래에서 일어나는 일에 대해 더 관심이 있습니다. 반면에 당신이 참조하는 질문은 문자열을 보간하는 법을 묻습니다. – ridecar2

답변

4

표시되는 첫 번째 방법은 메모리에 여러 문자열을 생성합니다. 문자열 보간은 사용하는 string.Format() 메서드 호출로 컴파일 : 메모리에서 나는 그것이 number.ToString() 문자열 리터럴 "The number is " 문자열 다음은 아주 간단 보여주는 두 번째 방법의 경우 이름 myString

와 문자열을 생성합니다 생각합니다.

EDIT : 두 번째 방법과 보간법도 형식 지정자를 지원합니다.

Jon Skeet하여 더 자세한 논의는 여기에서 찾을 수 있습니다 : http://freecontent.manning.com/interpolated-string-literals-in-c/

+0

'string.Format'이'int'에서도'ToString()'을 호출한다고 생각합니다 : https://referencesource.microsoft.com/#mscorlib/system/text/stringbuilder.cs,1466 – Orphid

+1

설명해 주셔서 감사합니다. – gayashanbc

+0

@Orrphid - 나는 그것에 동의한다. 사실 나는 그것이 반드시해야한다고 확신한다. 그것이하지 않는 것은 내가 기억하는 것처럼 서식을 허용하는 것이고, 그것을 나의 대답에 추가해야한다. – ridecar2