我在其他人的代码中看到过这种语法,只是想知道它的输出是什么。例如,
string foo = "Hello World";
string bar = String.Format("{0, -7}", foo);
Console.WriteLine(bar);
我已经尝试了不同的输入并提出了相同的输出,所以我不确定发生了什么。有没有人愿意解惑?
这用于具有左填充...
您知道您需要 30 个字符才能发布答案吗?
这:
string test = "test";
Console.Out.WriteLine(test);
Console.Out.WriteLine(string.Format("{0, 10} 10 pad", test));
Console.Out.WriteLine(string.Format("{0, -10} -10 pad", test));
将产生:
负数向左侧添加填充,而正数向右侧添加填充。由于字符串Hello World
比您提供的填充长,因此您看不到结果。试试这些:
string foo = "Hello";
string bar = String.Format("{0, 7}", foo);
Console.WriteLine("'{0}'", bar);
bar = String.Format("{0, -7}", foo);
Console.WriteLine("'{0}'", bar);
添加引号bar
可以更容易地查看发生了什么。
来自msdn:
格式项语法
每个格式项采用以下形式并由以下组件组成:
{ index[,alignment][:formatString]} 需要匹配的大括号(“{”和“}”)。对齐组件
可选的对齐组件是一个有符号整数,表示首选的格式化字段宽度。如果alignment 的值小于格式化字符串的长度,则忽略对齐,并将格式化字符串的长度用作字段宽度。如果对齐为正,则字段中的格式化数据右对齐,如果对齐为负,则左对齐。如果需要填充,则使用空格。如果指定了对齐方式,则逗号是必需的。