[英]String interpolation inside string interpolation
是否可以使用想要插入的字符串格式的變量。
public class Setting
{
public string Format { get; set; }
}
var setting = new Setting { Format = "The car is {colour}" };
var colour = "black";
var output = $"{setting.Format}";
預期產量
“汽車是黑色的”。
你不能那樣做。 字符串插值是純粹的編譯時功能。
不,您無法做到這一點,但是您可以通過稍微有點不同的方法來達到相同的效果,我已經喜歡上了:
public class Setting
{
public Func<string, string> Format { get; set; }
}
然后可以將字符串參數傳遞給Format
:
var setting = new Setting { Format = s => $"The car is {s}" };
var output = setting.Format("black");
為什么不?
首先,在C#中聲明它之前不能使用局部變量。 因此,在使用colour
之前先聲明colour
。 然后“插入”分配給Format
的字符串,您就完成了。
var colour = "black";
var setting = new Setting { Format = $"The car is {colour}" };
var output = $"{setting.Format}";
Console.WriteLine(output);
輸出:
車是黑的。
您可以對其進行一些更改,如下所示:
public class Setting
{
public string Format
{
get
{
return String.Format(this.Format, this.Colour);
}
set
{
Format = value;
}
}
public string Colour { get; set; }
}
var setting = new Setting { Format = "The car is {0}", Colour = "black" };
然后輸出將是“汽車是黑色的”。
我尚未測試此代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.