PHP에서 다음을 수행 할 수 있습니다.
$name = 'John';
$var = "Hello {$name}"; // => Hello John
C #에 유사한 언어 구조가 있습니까?
나는 알고 String.Format();
있지만 문자열에 대한 함수 / 메소드를 호출하지 않고도 수행 할 수 있는지 알고 싶습니다.
답변
C # 6에서는 문자열 보간을 사용할 수 있습니다 .
string name = "John";
string result = $"Hello {name}";
Visual Studio에서 이에 대한 구문 강조 표시를 통해 가독성이 높고 모든 토큰이 확인됩니다.
답변
이 기능은 C # 5 이하에 기본 제공되지 않습니다.
업데이트 : C # 6은 이제 문자열 보간을 지원합니다. 최신 답변을 참조하세요.
이를 수행하는 권장 방법은 다음과 String.Format
같습니다.
string name = "Scott";
string output = String.Format("Hello {0}", name);
그러나 나는 리플렉션을 통해 명명 된 자리 표시자를 사용할 수 있도록 확장되는 SmartFormat 이라는 작은 오픈 소스 라이브러리 String.Format
를 작성했습니다. 따라서 다음을 수행 할 수 있습니다.
string name = "Scott";
string output = Smart.Format("Hello {name}", new{name}); // Results in "Hello Scott".
네가 좋아하길 바래!
답변
다음 방법을 사용하십시오.
1 : 방법 1
var count = 123;
var message = $"Rows count is: {count}";
2 : 방법 2
var count = 123;
var message = "Rows count is:" + count;
3 : 방법 3
var count = 123;
var message = string.Format("Rows count is:{0}", count);
4 : 방법 4
var count = 123;
var message = @"Rows
count
is:{0}" + count;
5 : 방법 5
var count = 123;
var message = $@"Rows
count
is: {count}";
답변
C # 5 (-VS2013)까지 함수 / 메소드를 호출해야합니다. String.Format
+ 연산자의 오버로드 와 같은 “정상”함수 입니다.
string str = "Hello " + name; // This calls an overload of operator +.
C # 6 (VS2015)에서는 문자열 보간이 도입되었습니다 (다른 답변에서 설명한대로).