0

我在其他人的代码中看到过这种语法,只是想知道它的输出是什么。例如,

string foo = "Hello World";
string bar = String.Format("{0, -7}", foo); 
Console.WriteLine(bar); 

我已经尝试了不同的输入并提出了相同的输出,所以我不确定发生了什么。有没有人愿意解惑?

4

3 回答 3

3

这用于具有左填充...

您知道您需要 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));

将产生:

在此处输入图像描述

于 2013-11-14T05:35:41.707 回答
1

负数向左侧添加填充,而正数向右侧添加填充。由于字符串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可以更容易地查看发生了什么。

于 2013-11-14T05:38:31.443 回答
0

来自msdn

格式项语法
每个格式项采用以下形式并由以下组件组成:
{ index[,alignment][:formatString]} 需要匹配的大括号(“{”和“}”)。

对齐组件
可选的对齐组件是一个有符号整数,表示首选的格式化字段宽度。如果alignment 的值小于格式化字符串的长度,则忽略对齐,并将格式化字符串的长度用作字段宽度。如果对齐为正,则字段中的格式化数据右对齐,如果对齐为负,则左对齐。如果需要填充,则使用空格。如果指定了对齐方式,则逗号是必需的。

于 2013-11-14T05:36:35.493 回答