C# 字符串中的大括号是什么意思

本文关键字:是什么 意思 字符串 | 更新日期: 2023-09-27 18:28:10

while (rdr.Read())
{
    Console.WriteLine("Product: {0,-35} Total: {1,2}", rdr["ProductName"], rdr["Total"]);
}

此代码中的 {0,-35} 是什么意思?

C# 字符串中的大括号是什么意思

更简单

的行是:

Console.WriteLine("{0}", 5);

该函数接受任意数量的参数。它们将入到相应索引处的字符串中。在这种情况下,索引零保存整数 5。结果是字符串"5"。

现在,您可以选择指定格式字符串和索引。这样:

Console.WriteLine("{0:0.00}", 5);

这会用 0.00 格式化5,从而导致5.00

数字就是这种情况,但我认为这些更容易解释。对于字符串,"格式"意味着对齐。另请注意,使用逗号而不是冒号来分隔索引和格式。

对齐方式(可选(:这表示字符串的最小长度。 正值,字符串参数将右对齐,如果 字符串不够长,字符串将填充空格 左边。负值,字符串参数将保留对齐 如果字符串不够长,字符串将被填充 右侧的空格。如果未指定此值,我们将默认 字符串参数的长度。

所以在你的例子中:

  • {0,-35} 表示字符串必须至少为 35 个字符,左对齐(末尾的空格填充(。
  • {1,2} 表示字符串必须至少为 2 个字符,右对齐(前面的空格填充(。

我推荐这篇文章,以及字符串。格式文档。

这些括号是值字符串中的占位符。

因此,rdr["ProductName"]将被格式化为字符串的第一个括号。rdr["Total"]将在字符串的第二个括号中格式化。

前提是:

rdr["ProductName"] = "My Product";
rdr["Total"] = 2.98;

然后,您将输出到控制台:

产品: 我的产品 总计: 2.98

问题更新后:

{0,-35}零件(如果用于对齐目的(。有关 C# 官方文档中的格式和对齐方式的更多信息。

"Product: {0,-35} Total: {1,2}"这样的字符串称为复合格式字符串

大括号内的第一个数字(从零开始(称为格式项,对应于复合格式字符串后面的参数的位置。可以选择在这些数字后跟逗号 (,( 和要应用的minimum width

最小宽度对于对齐列很有用。如果该值为负数,则结果将左对齐;否则,它将右对齐。例如:

Console.WriteLine("Product: {0,-35} Total: {1,2}", "1stProduct", 99);
Console.WriteLine("Product: {0,-35} Total: {1,2}", "SecondProduct", 111);

结果:

Product: 1stProduct                          Total: 99
Product: SecondProduct                       Total: 111  

您可以看到,由于我们为产品名称指定了 35 个字符的最小宽度,因此无论它们的实际长度如何(在上面的示例中分别为 10 和 13(,它们都将始终在结果字符串中至少占用那么多空间。由于我们指定了-35(负数(,因此产品名称将左对齐。

它用于将字符串与空格对齐

若要将字符串向右或向左对齐,请使用静态方法 String.Format。要将字符串左对齐(右侧的空格(,请使用带逗号 (,( 的格式,后跟负数字符:String.Format("{0,–10}",文本(。要右对齐,请使用正数:{0,10}。

看看

http://www.csharp-examples.net/align-string-with-spaces/

这些{}括号用于字符串格式设置。 例如,您的案例 rdr["产品名称"]给出了一个格式说明符 {0,-35} ...它将左对齐,并在右侧填充空格。