2017-04-20 26 views
3

私はC#の初心者です。これまでは、変数を文字列値に埋め込むために使用できるいくつかの方法がありました。 1つは、C#6.0で導入された文字列補間です。以下のコードは、文字列補間の例です。私が知りたいのは何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:第2の方法と補間は、フォーマット指定子もサポートします。 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

@Orphid - 私はそれに同意します、実際には私はそれがしなければならないと確信しています。それができないことは、私が思い出したように書式設定を許可することです、それを私の答えに加えるべきです。 – ridecar2