while (rdr.Read())
{
Console.WriteLine("Product: {0,-35} Total: {1,2}", rdr["ProductName"], rdr["Total"]);
}
這段代碼中的{0,-35}是什麼意思?C#字符串中的大括號是什麼意思?
while (rdr.Read())
{
Console.WriteLine("Product: {0,-35} Total: {1,2}", rdr["ProductName"], rdr["Total"]);
}
這段代碼中的{0,-35}是什麼意思?C#字符串中的大括號是什麼意思?
更簡單的線將是:
Console.WriteLine("{0}", 5);
該函數接受任何數量的參數。它們將被插入相應索引處的字符串中。在這種情況下,索引0保存整數5.結果是字符串「5」。
現在,您可以選擇指定格式字符串以及索引。像這樣:
Console.WriteLine("{0:0.00}", 5);
這格式化5
與0.00
,導致5.00
。
這就是數字的情況,但我認爲這些更容易解釋。對於字符串,「格式」意味着對齊。另請注意,您使用逗號而不是冒號來分隔索引和格式。
alignment(可選):這表示字符串的最小長度。 正立值,字符串參數將右對齊,如果 字符串不夠長,字符串將填充空格在左邊 。 否定值,字符串參數將被保留 ,如果字符串不夠長,字符串將填充 空間在右邊。如果未指定此值,我們將默認 爲字符串參數的長度。
因此,在你例如:
{0,-35}
意味着串具有至少爲35個字符,leftjustified(在端空間填充)。{1,2}
表示字符串必須至少有2個字符,rightjustified(前面的空格填充)。這些括號是值爲字符串的佔位符。
因此,rdr["ProductName"]
將被格式化爲字符串的第一個括號。並且rdr["Total"]
將被格式化爲字符串的第二個括號。
提供這樣的:
rdr["ProductName"] = "My Product";
rdr["Total"] = 2.98;
然後你會輸出到控制檯:
產品:我的產品總計:2.98
問題更新後:
The {0,-35}
部分如果爲了對齊的目的。有關格式化和對齊的更多信息on C#'s official documentation。
感謝您的回覆,但那麼0,35和1,2是什麼意思 – rosebrit3 2012-03-19 11:32:55
對於字符串,它是用於對齊的信息。 – 2012-03-19 11:33:48
它是對齊串空間
要對齊串向右或向左使用靜態方法的String.Format。要將字符串與左側對齊(右側空格),請使用帶逗號(,)的格式化模板,後跟負數字符:String.Format(「{0,-10}」,text)。要正確對齊,請使用正數:{0,10}。
看看
那些{}
支架的字符串格式化的目的。例如,你的情況rdr [「ProductName」] 已經給出了一個格式說明符{0,-35} ...,它將與填充到右邊的空格左對齊。
像"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
(負數),產品名稱將左對齊。
使用你不明白的代碼是不明智的。我建議你在哪裏找到這個代碼,問作者。 – 2012-03-19 15:26:02