在这样的字典中:
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}
是什么意思?
答案 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)写入 指定对象的文本表示,后跟 当前行终止符,使用的标准输出流 指定的格式信息。