Что означают фигурные скобки в строках C#?

while (rdr.Read())
{
    Console.WriteLine("Product: {0,-35} Total: {1,2}", rdr["ProductName"], rdr["Total"]);
}

что означает {0, -35} в этом коде?

5 ответов


более простой строки:

Console.WriteLine("{0}", 5);

функция принимает любое количество аргументов. Они будут вставлены в строку по соответствующему индексу. В этом случае нулевой индекс содержит целое число 5. Результатом является строка "5".

теперь у вас есть возможность указать строку формата, а также индекс. Вот так:

Console.WriteLine("{0:0.00}", 5);

этот формат 5 С 0.00, в результате 5.00.

это случай для чисел, но я думаю, это легче объяснить. Для строк "формат" подразумевает выравнивание. Также обратите внимание, что для разделения индекса и формата используется запятая, а не двоеточие.

выравнивание (по желанию): это представляет минимальную длину строки. Postive values, строковый аргумент будет правильно обоснован, и если строка недостаточно длинная, строка будет дополнена пробелами на левый. отрицательный ценностей, аргумент string будет оставлен справедливым и если строка недостаточно длинная, строка будет дополнена пробелы справа. Если это значение не указано, Мы по умолчанию к длине аргумента string.

так в вашем примере:

  • {0,-35} означает, что строка должна быть не менее 35 символов, leftjustified (пробел в конце).
  • {1,2} означает, что строка должна быть не менее 2 символов, rightjustified (пробел в присутствии.)

рекомендую в этой статье, а также строку.Формат документации.


эти скобки являются заполнителями в строках для значений.

и rdr["ProductName"] будет отформатирован в первые скобки строки. И rdr["Total"] будет отформатирован во вторых скобках строки.

при этом:

rdr["ProductName"] = "My Product";
rdr["Total"] = 2.98;

затем вы выведете на консоль:

Продукт: Мой Итог Продукта: 2,98

после обновления вопроса:

на {0,-35} Если для выравнивания цель. Дополнительная информация о форматировании и выравнивании на C#'ы официальной документации.


строки "Product: {0,-35} Total: {1,2}" называют композитный струны.

первые цифры внутри фигурных скобок (которые начинаются с нуля) называются элементы форматирования и соответствуют позиции аргументов, которые приходят после строки составного формата. Эти числа могут дополнительно сопровождаться запятой (,) и minimum width применить.

минимальная ширина полезна для выравнивания столбцов. Если значение отрицательное, результат будет выравнивание по левому краю; в противном случае оно будет выравниваться по правому краю. Например:

Console.WriteLine("Product: {0,-35} Total: {1,2}", "1stProduct", 99);
Console.WriteLine("Product: {0,-35} Total: {1,2}", "SecondProduct", 111);

результаты:

Product: 1stProduct                          Total: 99
Product: SecondProduct                       Total: 111  

вы можете видеть это, потому что мы указали минимальную ширину 35 символы для названий продуктов, они всегда будут занимать по крайней мере столько места в строке результата независимо от их фактической длины(которые были 10 и 13 В приведенном выше примере, соответственно). И потому, что мы указали -35(отрицательный), названия продуктов будут левая линия.


Это для выравнивания строки с пробелами

чтобы выровнять строку справа или слева, используйте статический метод String.Формат. Чтобы выровнять строку слева (пробелы справа), используйте форматирование patern с запятой (,), за которой следует отрицательное количество символов: String.Формат("{0,-10}", текст). Для выравнивания справа используйте положительное число: {0,10}.

посмотреть

http://www.csharp-examples.net/align-string-with-spaces/


те {} скобки предназначены для форматирования строк. например, ваш случай rdr ["ProductName"] дали спецификатор формата {0,-35} ... который будет выровнен слева с пространством, проложенным справа.