OriginalGriff
TheRealSteveJudge прав, но ... весь цикл бессмыслен, как показано на рисунке, так как переменная выйдет из области видимости в конце цикла и будет выброшена.
Лучшим решением было бы следующее:
string s = "";
for (int i = 1; i <= 3; i++)
{
s = s + i.ToString();
}
Console.WriteLine(s);
Или для больших петель:
StringBuilder sb = "";
for (int i = 1; i <= 3; i++)
{
sb.Append(i.ToString());
}
Console.WriteLine(sb.ToString());
Поскольку строки неизменяемы - когда вы объединяете строки, вы создаете новую строку и должны скопировать всю информацию через нее - это может быть невероятно неэффективно с точки зрения мощности процессора и памяти, если вы не будете осторожны. Класс StringBuilder сводит это к минимуму, будучи расширяемой строкой.
TheRealSteveJudge
Вы правы со мной
the variable will go out of scope
Но почти невозможно дать идеальный ответ на такой плохой вопрос.
Однако подсказка StringBuilder очень ценна. 5*