Как работает передача строки в метод? - 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();
}