介紹C# 6.0新功能-「字串插補」(string interpolation)介紹,將會敘述如何使用這方便的語法糖。
C# 6.0發表時間:2015年7月,始於.NET Framework 4.6,Visual Studio 2015。
這個新語法是讓字串插入某些「特定字」或是格式更加方便。可以視為String.Format
的變形,比String.Format
讓我們更容易顯示及使用的字串格式。
以下會用展示「指定變數位置」和「指定字串格式」
- 輸入指定的變數位置(C#文件:特殊字元)
首先是原本的String.Format
:
Console.WriteLine(String.Format("At {0}, the temperature is {1}°C.", DateTime.Now, 20.4));
他會顯示:At 07/06/2019 13:19:52, the temperature is 20.4°C.
。
{0}
的位置變成07/06/2019 13:19:52
(這個會根據主機的語言特性而改變,本範例是使用微軟的網頁模擬器)的文字顯示,而{1}
則是顯示20.4
。
如果是使用$
這特殊字元,則會變成:
Console.WriteLine($"At {DateTime.Now}, the temperature is {20.4}°C.");
結果也是顯示相同的:At 07/06/2019 13:19:52, the temperature is 20.4°C.
。
可以看得出來,差別是把前面的String.Format
改成$
,並且把後面要顯示的引數「DateTime.Now」和「20.4」,放入本來指定要插入String.Format
的第0個和第1個的位置,也就是把引數放在String.Format
的第一個變數中,變成只有一個區塊而已。這樣是不是變得更容易寫,不用打太多字,而且不用前後移動,去比對參數位置,不用擔心多一個少一個或算錯位置,顯示結果就天差地遠了!
- 輸入指定的字串格式(C#文件:插入字串的結構)
這個是讓我們可以把字串使用指定的格式呈現,例如String.Format
使用double
的指定小數位數:
double pi = 3.14159;
Console.WriteLine(String.Format("PI is=[{0}]",pi));
Console.WriteLine(String.Format("PI is=[{0:F2}]",pi));
而同樣的,可以使「$
」這個特殊字元,達到與String.Format
相同的效果:
double pi = 3.14159;
Console.WriteLine($"PI is=[{pi}]");
Console.WriteLine($"PI is=[{pi:F2}]");
顯示出的結果都會是:
PI is=[3.14159]
PI is=[3.14]
如果要使用「$
」特殊字元,有幾點要特別注意:
- 使用此語法時,
$
和""
中間不能有空白,不然編譯會發生問題。 - 而要顯示「
{}
」要使用雙大括號,也就是要輸入「{{
」和「}}
」才把正常顯示出來「{
」和「}
」。例如:Console.WriteLine($"PI is={{pi}}");
,就會顯示:PI is={pi}
。 - 當大括號(
{}
)內有「""
」,記得此變數要使用「()
」包起來,像是:Console.WriteLine($"PI is=[{(pi.ToString().Length > 2 ? 3 : pi)}]");
,就會顯示PI is=[3]
。
更多說明在:
- $ - 字串內插補點 (C# 參考)
- 字串插補(C# 6.0)
~Copyright by Eyelash500~
IT技術文章:EY*研究院
iT邦幫忙:eyelash*睫毛
Blog:睫毛*Relax
Facebook:睫毛*Relax