2

我正在学习 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# 中调用的这个功能我似乎无法找到它。

4

3 回答 3

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 复合格式功能将对象列表和复合格式字符串作为输入。复合格式字符串由与列表中的对象相对应的索引占位符(称为格式项)混合的固定文本组成。格式化操作产生一个结果字符串,该字符串由原始固定文本与列表中对象的字符串表示混合而成。

于 2013-08-02T10:06:01.550 回答
1

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

string.Format("Var1: {0}, var2:{1}, TheVery{3}InHere", "val1", "val2", "LongText");
于 2013-08-02T10:06:49.190 回答
0

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

于 2013-08-02T10:04:15.473 回答