멋진 기능. 나는 이것이 왜 사람들에게 명백하지 않은 경우 이것이 string.format보다 나은지 강조하고 싶습니다.
매개 변수와 일치시키기 위해 order string.format을 "{0} {1} {2}"(으)로 말하는 사람을 읽었습니다. string.format에서 "{0} {1} {2}"을 (를) 주문하지 않아도됩니다. "{2} {0} {1}"을 (를) 수행 할 수도 있습니다. 그러나 20과 같은 매개 변수가 많은 경우 문자열을 "{0} {1} {2} ... {19}"로 시퀀싱하려고합니다. 뒤섞인 엉망이라면 매개 변수를 정렬하는 데 어려움을 겪을 것입니다.
$를 사용하면 매개 변수를 세지 않고 인라인으로 매개 변수를 추가 할 수 있습니다. 이를 통해 코드를 훨씬 쉽게 읽고 관리 할 수 있습니다.
$의 단점은 문자열에서 매개 변수를 쉽게 반복 할 수 없으므로 입력해야한다는 것입니다. 예를 들어 System.Environment.NewLine을 입력하는 데 지치면 string.format ( "... {0} ... {0} ... {0}", System.Environment.NewLine), 그러나 $로, 당신은 그것을 반복해야합니다. $ "{0}"은 (는) "0"을 반환하므로 $ "{0}"을 (를) 수행하고이를 string.format에 전달할 수 없습니다.
부수적으로, 나는 또 다른 중복 된 tpoic에서 주석을 읽었습니다. 나는 언급 할 수 없으므로 여기 있습니다. 그는 말했다
string msg = n + " sheep, " + m + " chickens";
둘 이상의 문자열 객체를 만듭니다. 이것은 사실이 아닙니다. 이 작업을 한 줄로 수행하면 하나의 문자열 만 만들어 문자열 캐시에 배치됩니다.
1) string + string + string + string;
2) string.format()
3) stringBuilder.ToString()
4) $""
모두 문자열을 반환하고 캐시에 하나의 값만 만듭니다.
반면에 :
string+= string2;
string+= string2;
string+= string2;
string+= string2;
4 ";"가 있으므로 캐시에 4 개의 다른 값을 작성합니다.
따라서 다음과 같은 코드를 작성하는 것이 더 쉬울 것이지만 Carlos Muñoz가 수정 한대로 5 개의 보간 문자열을 작성합니다.
string msg = $"Hello this is {myName}, " +
$"My phone number {myPhone}, " +
$"My email {myEmail}, " +
$"My address {myAddress}, and " +
$"My preference {myPreference}.";
이렇게하면 코드를 매우 쉽게 읽을 수있는 동안 캐시에 단일 문자열이 생성됩니다. 성능에 대해서는 확실하지 않지만 MS가 아직 수행하지 않은 경우이를 최적화 할 것이라고 확신합니다.