Что бы я порекомендовал
Вы пробовали myString.Reverse();
Это был бы самый простой способ перевернуть строку в C # (.Net 3.5 и выше).
Ответ
Что касается вашего примера, он использует Recursion
для отображения каждого символа, удаляя конечный символ (создавая подстроку оригинала с удаленным первым символом), затем вызывая себя снова, пока не будет осталось символов.
Вам нужно будет вызвать DisplayRev(s);
только один раз, потому что он рекурсивно отображает каждый символ внутри.
Объяснение Попытка
Например, у нас есть строка "hello"
.
Первый вызов будет рекурсивно вызывать функцию с substring
из "hello"
, которая будет "ello"
Обратите внимание, что вызов Console.WriteLine не был выполнен, потому что была вызвана функция DisplayRev
, поэтому мы переходим к рекурсивному вызову.
Это будет происходить до тех пор, пока строка не станет пустой (.Length == 0
). Затем функция выйдет и вернется к вызывающей стороне, где строка [0] будет иметь значение «o», будет введен код Console.WriteLine
, записывающий «o» в консоль, затем эта функция будет завершена, и вызывающий абонент затем нажмет Console.WriteLine
, который будет "l", он будет возвращаться до тех пор, пока не будет достигнут первоначальный вызов.
Таким образом, ваша исходная строка перевернута.
Ссылка
Вокруг рекурсии существует множество уроков. Вот несколько (они будут лучше объяснять это, чем я):
Пример рекурсии 1
Пример рекурсии 2