2013-03-12 49 views

回答

2

{0}是一個複合格式化佔位符,表示格式值列表中的第一項。有關詳細信息,請參閱this MSDN article,特別是底部附近稱爲「複合格式」的部分或特別關於Composite Formatting的較大文章。但是,總結一下:

在.NET中,可以使用兩種字符串格式:ToString格式和複合格式。它們都使用相同的自定義格式字符串語法。

如果您有一個對象,例如DateTime變量,並且您在該對象上調用DateTime.ToString(),則可以傳遞一個格式化字符串,它將應用於該對象,並根據您的模式進行格式化。但是,如果您有多個對象並且您想要構建包含其值的複雜字符串,則可以調用String.Format。該函數需要一個包含佔位符的「格式字符串」,其中可變位的位置看起來像{0:g}{5:MM/dd/yy}或其他。 String.Format的其餘參數是變量列表。 {0}佔位符是第一個變量,{5}是第六個,等等。

+0

我瞭解複合格式。但只是爲了確保我明白你在說什麼。這只是一種偏好?因爲當我使用日期作爲字符串時,我通常首先聲明一個字符串,然後用格式化的日期填充字符串。然後我在我的String.Format中將我的字符串調用到佔位符中。你說這只是一種避免提前填充字符串變量的方法?並將格式選項放在我的佔位符中? – user2140261 2013-03-12 20:14:33

+0

是的。如果將'DateTime'傳遞給'String.Format()',它將使用與DateTime.ToString()'相同的格式化邏輯,所以不需要單獨調用它。你可以做例如'String.Format(「今天是:{0:MM/dd/yy}」,DateTime.Today)'' – 2013-03-12 21:44:51