[英]String Interpolation C#
如果我們可以將字符串的 temp_data 存儲在變量中並對其使用插值?
var name = "John";
var temp_data = "Hi {name}";
var result_data = $temp_data;
如果除了string.Format()
和string.Replace()
之外,還有任何可能的解決方案可用
如果您希望將消息存儲為外部資源,您將需要使用 string.Format 而不是字符串插值,內插字符串必須在編譯時作為字符串文字完整存在。
您還需要確保消息中包含的變量數量與調用 string.format 的代碼中的變量數量相匹配,否則將無法正確轉置。
例如,這是使用資源文件;
var message = string.Format(Strings.ErrorMessage, value1, value2);
Strings.ErrorMessage 將包含;
“這是錯誤 {0} 和消息 {1}”
您可以使用$ - string interpolation (C# Reference)
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated
你可以這樣使用
double speedOfLight = 299792.458;
FormattableString message = $"The speed of light is {speedOfLight:N3} km/s.";
System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("nl-NL");
string messageInCurrentCulture = message.ToString();
var specificCulture = System.Globalization.CultureInfo.GetCultureInfo("en-IN");
string messageInSpecificCulture = message.ToString(specificCulture);
string messageInInvariantCulture = FormattableString.Invariant(message);
Console.WriteLine($"{System.Globalization.CultureInfo.CurrentCulture,-10} {messageInCurrentCulture}");
Console.WriteLine($"{specificCulture,-10} {messageInSpecificCulture}");
Console.WriteLine($"{"Invariant",-10} {messageInInvariantCulture}");
使用 C#6,你可以完全按照你寫的做,沒有錯字:
var name = "John";
var temp_data = $"Hi {name}";
var result_data = temp_data;
Console.log(result_data);
將返回“嗨約翰”;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.