[英]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.