【问题标题】:What does {0} mean when found in a string in C#?在 C# 中的字符串中找到 {0} 是什么意思?
【发布时间】:2009-02-09 23:28:12
【问题描述】:

在这样的字典中:

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} 是什么意思?

【问题讨论】:

    标签: c# string formatting


    【解决方案1】:

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

    对于 String.Format,如果你有类似的东西,这是相似的

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

    您将创建一个字符串“This is a test。值为 42”。

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

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

    yielding "Fib: 1, 1, 2, 3"

    http://msdn.microsoft.com/en-us/library/txafckwd.aspx 上查看更多信息,其中讨论了复合格式。

    【讨论】:

      【解决方案2】:

      它是字符串中的占位符。

      例如,

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          请注意,突出显示所选内容(例如,双击或进行拖动选择)并点击 F1 只会进行非上下文字符串搜索(这往往会在寻找任何有用的东西时很糟糕) ,因此请确保将光标放在单词内的任意位置而不突出显示它。

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

          【讨论】:

            【解决方案5】:

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

            如果你有一个额外的参数,你会使用{1}等。

            【讨论】:

              【解决方案6】:

              它是参数的占位符,类似于%s 格式说明符在printf 中的作用。

              您也可以开始在其中添加额外的内容来确定格式,尽管使用数字变量 (examples here) 更有意义。

              【讨论】:

                【解决方案7】:

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

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2011-06-10
                  • 1970-01-01
                  • 2015-01-03
                  • 1970-01-01
                  • 2012-04-17
                  • 1970-01-01
                  • 2019-12-08
                  • 2020-04-02
                  相关资源
                  最近更新 更多