带格式变量的字符串插值

我可以做这个:

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

回到顶部