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

时间:2009-02-09 23:28:13

标签: c# string formatting

在这样的字典中:

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”value = wordpad.exe

{0}是什么意思?

7 个答案:

答案 0 :(得分:168)

您正在打印格式化的字符串。 {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: 1 1 2 3

详见http://msdn.microsoft.com/en-us/library/txafckwd.aspx,其中讨论了复合格式。

答案 1 :(得分:23)

它是字符串中的占位符。

例如,

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

你仍然会得到相同的输出。

答案 2 :(得分:11)

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

有许多内置格式说明符,此外,您可以自己制作。对于体面的教程/列表,请参阅 String Formatting in C# 。此外,还有常见问题here

答案 3 :(得分:6)

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

请注意,突出显示一个选择(例如,双击或执行拖动选择)并点击 F1 只会执行非上下文字符串搜索(在查找任何有用的内容时会感到很糟糕) ,所以请确保只将光标定位在单词内的任何位置而不突出显示它。

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

答案 4 :(得分:5)

它是第一个参数的占位符,在您的情况下评估为“wordpad.exe”。

如果您有其他参数,则可以使用{1}

答案 5 :(得分:4)

它是一个参数的占位符,就像%s中的printf格式说明符一样。

你可以开始在那里添加额外的东西来确定格式,尽管使用数字变量(examples here)更有意义。

答案 6 :(得分:0)

这就是我们所谓的.NET Framework Composite Formatting,它将对象的值转换为其文本表示形式,并将该表示形式嵌入到字符串中。结果字符串将写入输出流。

  

重载的Console.WriteLine Method (String, Object)写入   指定对象的文本表示,后跟   当前行终止符,使用的标准输出流   指定的格式信息。