这行VB.NET代码如何工作?

时间:2015-01-27 17:24:31

标签: vb.net string.format

我正在使用VB.NET和String.Format。

下面的代码行用20个空格字符填充s。问题是我不知道它是如何工作的,也无法找到解释。参考:MSDN String.Format Method

Dim s As String = String.Format("{0, 20}", String.Empty)

它给了我需要的结果,一个填充了20个空格字符的字符串,但是什么是" 0"?如果我将其更改为任何其他num,则会产生错误。

而且我不知道它在哪里/如何指定Space char?

3 个答案:

答案 0 :(得分:4)

格式说明符{0, 20}表示它会将对象string.Empty作为元素{0}放在空的20个字符串的末尾。我的意思是你的项目将用于填充20个字符串的右侧,其余部分将被填充。由于您正在使用string.Empty,因此您将获得一个完全空白的字符串。尝试添加z并将数字更改为负数。

string.Format("{0, -10}", "z");

这应该为您提供一个以z开头并填充空格的10个字符的字符串。这是string.Format的默认行为,在格式化自定义数字时最常用。该空间不需要作为命令的一部分包含在内,因为您的说明符指示您需要20个字符的结果字符串这一事实可以预期。空格似乎是最合乎逻辑的插入默认字符。

如果您使用复杂的字符串,请执行以下操作:

string.Format("{0, 10}", "abc");

你仍然应该得到一个10个字符的字符串,但它看起来像

"       abc"

答案 1 :(得分:1)

第一个参数中的0是参数的索引。

该方法的签名为String.Format(string format, object[] params)

所以"{0, 20}"是要格式化的字符串,其他所有内容都变成了一个对象数组。

答案 2 :(得分:1)

零是您要发送的参数的索引,在您的情况下为String.Empty