[c#] 문자열 내에서 변수 사용

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)에서는 문자열 보간이 도입되었습니다 (다른 답변에서 설명한대로).


답변