Форматировать строки в методе Console.WriteLine
Im новое для программирования на С#. Может кто-нибудь объяснить следующий код:
Console.WriteLine( "{0}{1,10}", "Face", "Frequency" ); //Headings
Console.WriteLine( "{0,4}{1,10}",someval,anotherval);
Я понимаю, что это печатает два столбца значений с указанными заголовками, а {0}
относится к первому аргументу. Но каково значение строк формата формы {x,y}
?
Ответы
Ответ 1
Он добавляет отступ слева. Очень полезно запомнить различные шаблоны форматирования строк следующим типом:
.NET String.Format Cheat Sheet
Положительные значения добавляют добавление влево, отрицательное добавление дополнений вправо
Sample Generates
String.Format("[{0, 10}]", "Foo"); [∙∙∙∙∙∙∙Foo]
String.Format("[{0, 5}]", "Foo"); [∙∙Foo]
String.Format("[{0, -5}]", "Foo"); [Foo∙∙]
String.Format("[{0, -10}]", "Foo"); [Foo∙∙∙∙∙∙∙]
Ответ 2
Когда вы видите {x,y}
, x
представляет индекс аргумента и y
выравнивание, как указано здесь. Полный синтаксис следующий:
{index[,alignment][:formatString]}
Ответ 3
Пожалуйста, проверьте этот для очень хорошей ссылки на форматирование строк.
Ответ 4
Это значение прокладки... если аргумент не задан, он помещает пробелы.
например. если у вас было {0,10}, а аргументом для {0} был "Бла", фактическое значение было бы "Blah<SPACE><SPACE><SPACE><SPACE><SPACE><SPACE>"
... Бла, с 6 дополнительными пробелами, чтобы составить строку длиной 10
ps - не уверен, как поместить фактические пробелы в... нужно искать SO faq без сомнения