2013-08-02 5 views
2

Я учусь C# и наткнулся на этот небольшой фрагмент кода:Что означает {0} в строковом литерале, например, в Console.WriteLine?

{ 

    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#, я не могу найти ее.

+0

Почему закрытые голоса? :) – DSF

+1

Закрытые голоса за этот вопрос «вне темы». Я лично не думаю, что этот вопрос «вне темы». –

ответ

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

+0

Очень полезный ответ. Будет, безусловно, читать дальше. Спасибо. – DSF

0

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

1

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

string.Format("Var1: {0}, var2:{1}, TheVery{3}InHere", "val1", "val2", "LongText"); 
Смежные вопросы