Что означает {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");