Je sais que la "chaîne" en C# est un type de référence. Cela se trouve sur MSDN. Cependant, ce code ne fonctionne pas comme il devrait alors :
class Test
{
public static void Main()
{
string test = "before passing";
Console.WriteLine(test);
TestI(test);
Console.WriteLine(test);
}
public static void TestI(string test)
{
test = "after passing";
}
}
La sortie devrait être "before passing" "after passing" puisque je passe la chaîne en tant que paramètre et qu'il s'agit d'un type de référence, la deuxième instruction de sortie devrait reconnaître que le texte a changé dans la méthode TestI. Cependant, j'obtiens "before passing" "before passing", ce qui donne l'impression que le texte est passé par valeur et non par référence. Je comprends que les chaînes de caractères sont immuables, mais je ne vois pas comment cela pourrait expliquer ce qui se passe ici. Qu'est-ce qui m'échappe ? Merci.