C# 字符串中的大括号是什么意思
本文关键字:是什么 意思 字符串 | 更新日期: 2023-09-27 18:28:10
while (rdr.Read())
{
Console.WriteLine("Product: {0,-35} Total: {1,2}", rdr["ProductName"], rdr["Total"]);
}
此代码中的 {0,-35} 是什么意思?
的行是:
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} ...它将左对齐,并在右侧填充空格。