在C#的字符串中找到{0}是什么意思?


85

在这样的字典中:

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"]);

输出为:

对于Key =“ rtf”值= wordpad.exe

什么{0}意思

Answers:


180

您正在打印格式化的字符串。{0}表示在格式字符串后插入第一个参数;在这种情况下,与键“ rtf”关联的值。

对于String.Format,如果您有类似的内容,则类似

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

您将创建一个字符串“这是一个测试。值为42 ”。

您还可以使用表达式,并多次打印出值:

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

得到“FIB:1123

有关更多信息,请参见http://msdn.microsoft.com/zh-cn/library/txafckwd.aspx,其中讨论了复合格式。


25

它是字符串中的占位符。

例如,

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);

而且您仍将获得相同的输出。


11

除了您希望打印的值{0} {1},等之外,您还可以指定一种格式。例如,{0,4}将是填充到四个空格的值。

有许多内置的格式说明符,此外,您还可以自己制作。有关体面的教程/列表,请参见C#中的字符串格式。此外,还有一个常见问题在这里


6

为了将来参考,可以在Visual Studio中尝试将光标放置在方法名称(例如WriteLine)中,然后按F1来拉出有关该上下文的帮助。String.Format()在这种情况下,挖掘四周应该会找到您,并提供许多有用的信息。

请注意,突出显示一个选择(例如,双击或执行拖动选择),然后单击它F1只会进行非上下文字符串搜索(这往往会吸引人们寻找有用的东西),因此请确保将光标放在内部的任何位置这个词没有突出显示。

这也有助于有关类和其他类型的文档。


5

它是第一个参数的占位符,在您的情况下,该参数的计算结果为“ wordpad.exe”。

如果您有其他参数,请使用{1},等等。


4

它是参数的占位符,就像%s格式说明符在内部起作用printf

您也可以在其中开始添加其他内容来确定格式,尽管使用数字变量更有意义(此处的示例)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.