Что означает {0}, когда он найден в строке в С#?

В словаре вроде этого:

Dictionary<string, string> openWith = new Dictionary<string, string>();

openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");

Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]);

Вывод:

Для ключа = "rtf" value = wordpad.exe

Что означает {0}?

Ответ 1

Вы печатаете форматированную строку. {0} означает вставить первый параметр, следующий за строкой формата; в этом случае значение, связанное с ключом "rtf".

Для String.Format, который похож, если у вас что-то вроде

//            Format string                    {0}           {1}
String.Format("This {0}.  The value is {1}.",  "is a test",  42 ) 

вы создадите строку "This - это тест. Значение 42".

Вы также можете использовать выражения и печатать значения несколько раз:

//            Format string              {0} {1}  {2}
String.Format("Fib: {0}, {0}, {1}, {2}", 1,  1+1, 1+2) 

уступая "Fib: 1, 1, 2, 3"

Подробнее в http://msdn.microsoft.com/en-us/library/txafckwd.aspx, в котором говорится о составном форматировании.

Ответ 2

Это заполнитель в строке.

Например,

string b = "world.";

Console.WriteLine("Hello {0}", b);

будет производить этот вывод:

Hello world.

Кроме того, вы можете иметь столько заполнителей, сколько пожелаете. Это также работает на String.Format:

string b = "world.";
string a = String.Format("Hello {0}", b);

Console.WriteLine(a);

И вы все равно получите тот же самый результат.

Ответ 3

Помимо значения, которое вы хотите распечатать, {0} {1} и т.д., вы можете указать формат. Например, {0,4} будет значением, которое дополняется четырьмя пробелами.

Существует множество встроенных спецификаторов формата, и, кроме того, вы можете создавать свои собственные. Для достойного учебника/списка см. Форматирование строк в С#. Кроме того, здесь есть FAQ .

Ответ 4

Для дальнейшего использования в Visual Studio вы можете попробовать поместить курсор в имя метода (например, WriteLine) и нажать F1, чтобы вытащить помощь в этом контексте. Затем выкапывание должно найти вас String.Format() в этом случае с большим количеством полезной информации.

Обратите внимание, что выделение выделения (например, двойное нажатие или выполнение перетаскивания) и нажатие F1 выполняет только поиск неконтекстных строк (который, как правило, сосут в поиске чего-либо полезного), убедитесь, что вы просто поместите курсор в любом месте слова, не выделяя его.

Это также полезно для документации по классам и другим типам.

Ответ 5

Это заполнитель для первого параметра, который в вашем случае оценивается как "wordpad.exe".

Если у вас есть дополнительный параметр, вы должны использовать {1} и т.д.

Ответ 6

Это заполнитель для параметра, очень похожий на спецификатор формата %s, действует в пределах printf.

Вы можете начать добавлять дополнительные вещи туда, чтобы определить формат, хотя это имеет большее значение с числовой переменной (примеры здесь).