这行 VB.NET 代码是如何工作的?
How does this line of VB.NET code work?
我正在使用 VB.NET 和 String.Format。
下面的代码行用 20 space 个字符填充 s。问题是我不知道它是如何工作的,也找不到解释。参考:MSDN String.Format Method.
Dim s As String = String.Format("{0, 20}", String.Empty)
它给了我需要的结果,一个由 20 space 个字符填充的字符串,但是“0”是什么?如果我将其更改为任何其他数字,则会产生错误。
而且我看不到它在哪里/如何指定 Space 字符?
第一个参数中的0
是参数的索引。
该方法的签名是String.Format(string format, object[] params)
。
所以"{0, 20}"
就是要格式化的字符串,其他都变成对象数组。
零是您要发送的参数的索引,在您的情况下 String.Empty
格式说明符 {0, 20}
表示它将把您的对象 string.Empty
作为元素 {0}
放在一个空的 20 个字符字符串的末尾。我的意思是您的项目将用于填充 20 个字符的字符串的右侧,其余部分将被填充。由于您使用的是 string.Empty
,因此您会得到一个完全空白的字符串。尝试添加 z 并将数字更改为负数。
string.Format("{0, -10}", "z");
这应该给你一个 10 个字符的字符串,以 z 开头并填充 spaces。这是 string.Format
的默认行为,在格式化自定义数字时最常使用。 space 不需要作为命令的一部分包含在内,因为您的说明符表明您需要 20 个字符的结果字符串,这被认为是预期的。 Space 似乎是最符合逻辑的插入默认字符。
如果您使用像这样的复杂字符串:
string.Format("{0, 10}", "abc");
你应该仍然得到一个 10 个字符的字符串,但它看起来像
" abc"
我正在使用 VB.NET 和 String.Format。
下面的代码行用 20 space 个字符填充 s。问题是我不知道它是如何工作的,也找不到解释。参考:MSDN String.Format Method.
Dim s As String = String.Format("{0, 20}", String.Empty)
它给了我需要的结果,一个由 20 space 个字符填充的字符串,但是“0”是什么?如果我将其更改为任何其他数字,则会产生错误。
而且我看不到它在哪里/如何指定 Space 字符?
第一个参数中的0
是参数的索引。
该方法的签名是String.Format(string format, object[] params)
。
所以"{0, 20}"
就是要格式化的字符串,其他都变成对象数组。
零是您要发送的参数的索引,在您的情况下 String.Empty
格式说明符 {0, 20}
表示它将把您的对象 string.Empty
作为元素 {0}
放在一个空的 20 个字符字符串的末尾。我的意思是您的项目将用于填充 20 个字符的字符串的右侧,其余部分将被填充。由于您使用的是 string.Empty
,因此您会得到一个完全空白的字符串。尝试添加 z 并将数字更改为负数。
string.Format("{0, -10}", "z");
这应该给你一个 10 个字符的字符串,以 z 开头并填充 spaces。这是 string.Format
的默认行为,在格式化自定义数字时最常使用。 space 不需要作为命令的一部分包含在内,因为您的说明符表明您需要 20 个字符的结果字符串,这被认为是预期的。 Space 似乎是最符合逻辑的插入默认字符。
如果您使用像这样的复杂字符串:
string.Format("{0, 10}", "abc");
你应该仍然得到一个 10 个字符的字符串,但它看起来像
" abc"