2009-02-09 85 views
66

在這樣的詞典:在C#中的字符串中發現{0}是什麼意思?

Dictionary<string, string> openWith = new Dictionary<string, string>(); 

openWith.Add("txt", "notepad.exe"); 
openWith.Add("bmp", "paint.exe"); 
openWith.Add("dib", "paint.exe"); 
openWith.Add("rtf", "wordpad.exe"); 

Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]); 

輸出是:

用於鍵= 「RTF格式」 值= wordpad.exe

什麼是{0}是什麼意思?

回答

146

您正在打印格式化的字符串。 {0}表示在格式字符串後面插入第一個參數;在這種情況下是與關鍵字「rtf」相關聯的值。

有關的String.Format,這是類似的,如果你有這樣的事情

//   Format string     {0}   {1} 
String.Format("This {0}. The value is {1}.", "is a test", 42) 

你創建一個字符串「是一個測試,這個值是」。

您也可以使用表達式,並打印值重複多次:

//   Format string    {0} {1} {2} 
String.Format("Fib: {0}, {0}, {1}, {2}", 1, 1+1, 1+2) 

產生 「FIB:,,,」

查看更多在http://msdn.microsoft.com/en-us/library/txafckwd.aspx,談論複合格式。

5

它是第一個參數的佔位符,在你的情況下它的計算結果爲「wordpad.exe」。

如果你有一個額外的參數,你會使用{1}

4

它是很像內printf%s格式說明行爲參數的佔位符。

您可以在其中添加額外的東西來確定格式,儘管這對數值變量更有意義(examples here)。

+3

鏈接似乎無法正常工作 - 小心修復它 – 2016-12-15 17:59:05

18

它是字符串中的佔位符。

例如,

string b = "world."; 

Console.WriteLine("Hello {0}", b); 

會產生這樣的輸出:

Hello world. 

此外,您還可以根據需要有儘可能多的佔位符。這也適用於String.Format

string b = "world."; 
string a = String.Format("Hello {0}", b); 

Console.WriteLine(a); 

而你仍然會得到相同的輸出。

10

除了您希望打印的值,{0} {1}等,您可以指定一種格式。例如,{0,4}將是一個填充到四個空格的值。

有一些內置的格式說明符,此外,你可以自己做。對於體面的教程/列表,請參閱String Formatting in C#。此外,還有一個常見問題here

6

爲了將來的參考,在Visual Studio中,您可以嘗試將光標放在方法名稱中(例如,WriteLine),然後按F1來獲得該上下文的幫助。在這種情況下,挖掘周圍應該找到你String.Format(),有很多有用的信息。

注意突出一個選擇(例如,雙擊或做一拖選),打F1只做非上下文字符串搜索(這往往在發現任何有用的吸吮),所以一定要確保您只需將光標定位在單詞的任何位置而不突出顯示它。

這對於類和其他類型的文檔也很有幫助。