StringBuilder.ToString()
добавляет символы «\» в начале и конце строки.StringBuilder.ToString() добавляет символы «» в начале и конце строки
Почему это?
Перед вызовом .ToString() строка не имеет символа '\'.
StringBuilder.ToString()
добавляет символы «\» в начале и конце строки.StringBuilder.ToString() добавляет символы «» в начале и конце строки
Почему это?
Перед вызовом .ToString() строка не имеет символа '\'.
Вы думаете о этих обратных косых черт здесь?
Если да, то вы искажение выходного сигнала: обратные слеши на самом деле не в строке. Они отображаются только здесь, чтобы сделать представление действительным в соответствии с синтаксисом C#. Например, если вы должны были выводить строку, используя Console.WriteLine
, она не имела бы обратной косой черты.
Справедливости ради, это is непоследовательный. Отладочный вид для StringBuilder
не имеет обратных косых черт, но для строк.
Какой у вас текст в StringBuilder?
Следующий код только выписывает «привет» мне
var sb = new StringBuilder();
sb.Append("hello");
var test = sb.ToString();
Console.WriteLine(test);
ли я что-то отсутствует?
Это не совсем ответ, поскольку вы действительно неуверенный, а также вопрос просто ошибочен в текущем состоянии. – Dykam
@Dykam: Я думаю, что это полезный ответ. Он обеспечивает OP правильно работающим образцом. –
@ Dykam, возможно, потому, что я не получаю тот же результат, что и человек, задающий вопрос, и он не дал мне многого, чтобы пойти дальше –
StringBuilder не добавляет никаких символов, кроме прилагаемых. Возможно, вы смотрите на представление Debug для строки, созданной строковым построителем, и characters which may need to be escaped перед обратным следом имеют обратную косую черту (\
) для удобства копирования отладочного вывода.
Символы \
на самом деле не находятся в строковых данных, а представляют собой часть дисплея строки.
Edit: здесь есть тест, который вы можете запустить
private static void TestStringBuilder()
{
StringBuilder builder = new StringBuilder();
builder.Append(@"""saoetuhasoethuasteuhasoetnuh""");
foreach (char c in builder.ToString())
{
System.Diagnostics.Debug.Assert(c != '\\', "EPIC STRINGBUILDER FAIL");
}
}
, пожалуйста, введите код здесь, чтобы мы могли видеть. –
Опубликовать код? – Paddy
-1 После 790 вопросов можно было бы подумать, что вы зададите менее элементарные вопросы или, по крайней мере, получите лучшие записи. Или даже научитесь проверять орфографию. –