Как работает передача строки в метод? - C#
Формулировка задачи:
Вот код.
Помогите уяснить как в этом случае работает передача строки в метод.
Я правильно понимаю что параметр Text хранит ссылку на строку?, однако когда я начинаю "вносить изминения т.е. Remove()", создается новый обьект типа String (при каждой итерации) и в него перезаписывается результат? Потом вся эта куча обьектов удаляется сборщиком мусора (с его тонкостями увы еще не знаком).
В результате я понимаю почему в конце мне все равно выводит одну и ту же строку. Т.е. я понимаю что это из за того что строки неизменны, но тогда не ясно каким образом все это передается в метод.
Протеворечие вызывает то, что в метод в моем понимании передается ссылка на обьект, но в то же время строка же неизменна.
В общем какая-то неясность образовалась
Обьясните пожалуйста.
using System; class CountWordInText { public static void Main() { CountOfWord ob1 = new CountOfWord(); string Text = "Привет Привет Привет Привет"; string word = "Приве"; int nums = ob1.NumOfWords(Text, word); Console.WriteLine(nums); Console.WriteLine(Text); // Результат: Привет Привет Привет Привет } }
using System; class CountOfWord { public int NumOfWords(string Text, string word) { int numbersWords = 0; bool findWord; if (Text.Length <= 0) { Console.WriteLine("Текст не содержит слов"); return 0; } while (findWord = Text.Contains(word)) { int indexWord = Text.IndexOf(word); Text = Text.Remove(indexWord, word.Length); numbersWords++; } return numbersWords; } }
Решение задачи: «Как работает передача строки в метод?»
textual
Листинг программы
class Program { static void Main(string[] args) { test ob1 = new test(1, 2); test ob2 = new test(3, 4); ob1.show(); ob2.show(); test ob3 = ob1; ob1 = ob2; ob2 = ob3; ob1.show(); ob2.show(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д