Возьмите следующий код:
public static string ReverseIt(string myString)
{
char[] foo = myString.ToCharArray();
Array.Reverse(foo);
return new string(foo);
}
Я понимаю, что строки неизменны, но я не понимаю, почему новую строку нужно называть
return new string(foo);
вместо
return foo.ToString();
Я должен предположить, что это как-то связано с повторной сборкой CharArray (но это только предположение).
В чем разница между ними и как узнать, когда нужно возвращать новую строку, а не возвращать System.String, которая представляет текущий объект?