我需要使用字符串插值格式化变量,格式字符串是另一个变量:
这是我的示例代码:
static void Main(string[] args)
{
int i = 12345;
Console.WriteLine($"Test 1: {i:N5}");
var formatString = "N5";
Console.WriteLine($"Test 2: {i:formatString}");
}
Run Code Online (Sandbox Code Playgroud)
测试1工作,测试2不起作用.
测试2的确切语法是什么?
在没有 String.Format 的情况下,您可以通过“语法”执行此操作的最短方法是使用ToString:
$"Test 2: {i.ToString(formatString)}"
Run Code Online (Sandbox Code Playgroud)
您的代码等效于:
Console.WriteLine(String.Format("Test 2: {0:formatString}", i));
Run Code Online (Sandbox Code Playgroud)
由于formatString格式字符串中的,您将嵌套String.Format调用以将值放入格式字符串:
Console.WriteLine(String.Format(String.Format("Test 2: {{0:{0}}}", formatstring), i));
Run Code Online (Sandbox Code Playgroud)
字符串插值不支持此功能。