Что означает {0} в строковом литерале, например, в Console.WriteLine?

Я изучаю 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 ответа

Решение

Кроме того, как эта функция называется в 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 принимает список объектов и строку составного формата в качестве входных данных. Составная строка формата состоит из фиксированного текста, смешанного с индексированными заполнителями, называемыми элементами формата, которые соответствуют объектам в списке. Операция форматирования дает результирующую строку, которая состоит из исходного фиксированного текста, смешанного со строковым представлением объектов в списке.

Это как в стандартном С printf() функция. Значения передаются после строки и форматируются в порядке передачи переменных.

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

Это формататор строки, и он будет заменен значением.

Другие вопросы по тегам