带格式变量的字符串插值
我可以做这个:
var log = string.Format("URL: {0}", url);
甚至像这样
var format = "URL: {0}";...
var log = string.Format(format, url);
我在format
其他地方有定义,并使用format
变量而不是内联字符串。
在C#6中,这似乎是不可能的:
var format = $"URL: {url}"; // Error url does not exist...
var url = "http://google.com";
...
var log = $format; // The way to evaluate string interpolation here
无论如何,有没有将字符串插值与之前声明的变量一起使用?
C#6似乎在编译期间内联了字符串。但是,请考虑使用此功能进行本地化,在config中定义格式或仅const
在类中具有格式。
回答:
不,您不能将字符串插值与字符串文字一起使用,因为即使使用字符串插值,编译器也会创建“常规”格式的字符串。
因为这:
string name = "bar";string result = $"{name}";
编译成这样:
string name = "bar";string result = string.Format("{0}", name);
运行时中的字符串必须是“常规”格式的字符串,而不是等效的字符串插值。
您可以改用普通的旧String.Format
格式。
以上是 带格式变量的字符串插值 的全部内容, 来源链接: utcz.com/qa/413296.html