Как работает передача строки в метод? - 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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д