У меня есть что-то вроде этого:
int processed = 123;
//
....
builder.Append("Export: Processed {0} Teacher(s)", processed.ToString());
Но он не компилируется и говорит: "String is not assignable to char."
Что не так?
Вам нужно использовать AppendFormat
; также, вызов ToString
на processed
не требуется:
builder.AppendFormat("Export: Processed {0} Teacher(s)", processed);
Если вы хотите передать строку формата в свой StringBuilder
вам нужно вызвать перегрузку AppendFormat
проходящую в вашей строке форматирования. Также .ToString()
не нужен, поскольку AppendFormat
будет неявно вызывать .ToString()
для каждого параметра. Поэтому ваше решение можно записать следующим образом:
StringBuilder builder = new StringBuilder();
int processed = 123;
builder.AppendFormat("Export: Processed {0} Teacher(s)", processed);
Добавляет строку, возвращенную обработкой строки составного формата, которая содержит ноль или более элементов формата, к этому экземпляру. Каждый элемент формата заменяется строковым представлением соответствующего аргумента объекта. Этот член перегружен. Для получения полной информации об этом члене, включая синтаксис, использование и примеры, щелкните имя в списке перегрузки.
Нет перегрузки для StringBuilder.Append(string, string)
Вместо этого используйте StringBuilder.AppendFormat(string, object)
.
Использовать string.Format
builder.Append(string.Format("Export: Processed {0} Teacher(s)", processed));
builder.AppendFormat
является более очевидным выбором в этом случае. Но String.Format также будет работать в тех случаях, когда нет специальной * Форматной версии метода.