{0}在字符串文字中的含义是什么,例如在Console.WriteLine中?

时间:2013-08-02 10:02:43

标签: c# variables curly-braces curly-brackets

我正在学习C#并遇到了这一小段代码:

{

  class Program

   {

     static void Main(string[] args)

      {

         int age = 20;// declaring variable and assign 20 to it.

         Console.WriteLine("You are {0} years old.",age);

         Console.ReadLine();

       }

   }

}

我不明白{0}将如何输出20.我的意思是它不像数组索引或其他什么,所以它如何知道它指的是变量age?我在逗号后面看到变量但这意味着如果我放{1}那么它会在年龄之后检索变量吗?

此外,在C#中调用的这个功能似乎无法找到它。

3 个答案:

答案 0 :(得分:4)

  

此外,在C#中调用的这个功能似乎无法找到它。

在C#级别:它不是 - 因为它不是C#功能根本;它只是一个库功能 - 另请参阅string.Format。这个方便的实用工具方法可以找到{0}{1}{2}等,并用第0个,第1个,第2个等参数替换它们。显然还有更多的东西(可用的格式更复杂 - 模式;负面与正面等)。

Console.WriteLine的文档位于:http://msdn.microsoft.com/en-us/library/828t9b9h.aspx

链接到“复合格式”:http://msdn.microsoft.com/en-us/library/txafckwd.aspx - 这是BCL团队称之为的内容:

  

.NET Framework复合格式化功能将对象列表和复合格式字符串作为输入。复合格式字符串由固定文本和索引占位符(称为格式项)混合而成,这些占位符对应于列表中的对象。格式化操作产生一个结果字符串,该字符串由原始固定文本与列表中对象的字符串表示混合而成。

答案 1 :(得分:1)

就像在标准C printf()函数中一样。这些值在字符串之后传递,并按照变量的顺序进行格式化。

string.Format("Var1: {0}, var2:{1}, TheVery{3}InHere", "val1", "val2", "LongText");

答案 2 :(得分:0)

它是一个字符串格式化程序,它将被替换为值。