Форматирование строк в методе Console.WriteLine - PullRequest
24 голосов
/ 19 ноября 2010

Я новичок в программировании на C #. Может кто-нибудь объяснить, пожалуйста, следующий код:

Console.WriteLine( "{0}{1,10}", "Face", "Frequency" ); //Headings
Console.WriteLine( "{0,4}{1,10}",someval,anotherval);

Я понимаю, что это печатает два столбца значений с данными заголовками, а {0} относится к первому заданному аргументу. Но в чем смысл форматирования строк вида {x,y}?

Ответы [ 3 ]

56 голосов
/ 19 ноября 2010

Добавляет отступ слева. Очень полезен для запоминания различных шаблонов форматирования строк следующий шпаргалка:

.NET String.Format Шпаргалка

Положительные значения добавляют отступы слева, отрицательные - отступы справа

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∙∙∙∙∙∙∙]
8 голосов
/ 19 ноября 2010

Когда вы видите {x,y}, x представляет индекс аргумента и y выравнивание, как указано здесь . Полный синтаксис следующий:

{index[,alignment][:formatString]}
3 голосов
/ 19 ноября 2010

Это значение заполнения ... если аргумент не является указанной длиной, он вставляет пробелы.

например. если бы у вас было {0,10}, а аргументом для {0} было «Бла», то фактическое значение было бы равно "Blah<SPACE><SPACE><SPACE><SPACE><SPACE><SPACE>" ... Бла, с 6 дополнительными пробелами, составляющими строку длиной 10

ps - не уверен, как поместить фактические пробелы в ... нужно искать ТАК ФАК, без сомнения

...