我刚开始学习C#编程。能否有人解释一下以下代码:
Console.WriteLine( "{0}{1,10}", "Face", "Frequency" ); //Headings
Console.WriteLine( "{0,4}{1,10}",someval,anotherval);
我知道这段代码会输出两列带有给定标题的值,并且{0}
表示第一个给定的参数。但是形如{x,y}
的格式字符串是什么意思?我刚开始学习C#编程。能否有人解释一下以下代码:
Console.WriteLine( "{0}{1,10}", "Face", "Frequency" ); //Headings
Console.WriteLine( "{0,4}{1,10}",someval,anotherval);
我知道这段代码会输出两列带有给定标题的值,并且{0}
表示第一个给定的参数。但是形如{x,y}
的格式字符串是什么意思?它在左侧添加填充。非常有用的是以下速查表,可帮助记忆各种字符串格式化模式:
正值将在左侧添加填充,负值则在右侧添加填充。
Sample Generates
String.Format("[{0, 10}]", "Foo"); [∙∙∙∙∙∙∙Foo]
String.Format("[{0, 5}]", "Foo"); [∙∙Foo]
String.Format("[{0, -5}]", "Foo"); [Foo∙∙]
String.Format("[{0, -10}]", "Foo"); [Foo∙∙∙∙∙∙∙]
这是一个填充值...如果参数不是指定的长度,它会插入空格。
例如,如果您有{0,10},并且{0}的参数为“Blah”,则实际打印的值将是"Blah<SPACE><SPACE><SPACE><SPACE><SPACE><SPACE>"
... Blah,多出6个空格以组成长度为10的字符串
ps-不确定如何放置实际的空格...无疑需要查找SO faq
[∙∙∙∙∙∙∙Foo]
,你实际上需要执行String.Format("[{0, 10}]", "Foo");
。 - Graham Clark