Cześć, mój problem wygląda tak, że w konstruktorze klasy przekazuję referencję do jakiegoś stringa. Potem obiekt tej klasy w pewnym momencie ma mi zmienić wartość w tym właśnie stringu. Nie wiem, jak to ugryźć. Nigdy nie ogarniałem wskaźników w C#, a pewnie istnieje jakiś bardziej przyjazny sposób.
class Changer
{
string m_string; //ten string ma być referencją do tego przekazanego w konstruktorze - jak tu trzymać referencję?
public Changer(ref string str)
{
m_string = str; //jak tu przekazać referencję?
}
public void Foo()
{
m_string = "Nowa wartość";
}
}
Efektem tego ma być, że jak zrobię coś takiego:
string str = "Blabla";
Changer changer = new Changer(ref str);
changer.Foo();
to zmienna str będzie miała wartość "Nowa wartość".
Uprzedzając pytania, w rzeczywistości metoda Foo nie jest metodą publiczną i jest wywoływana po prostu w pewnym momencie.
Przy czym wiem, że stringa jako tako nie można zmienić (tylko tworzy się nowy w innym miejscu w pamięci), ale nie zależy mi na tym. Zależy mi, żeby na koniec str miał inną wartość.