У меня есть фрагмент кода ниже, который ставит префикс строки к началу каждого члена массива строк. то есть. ["a", "b", "c"] с префиксом "z" становится ["za", "zb", "zc"].
private string[] Prefix(string[] a, string b) {
for(int i = 0;i < a.Length;i++) {
a[i] = b + a[i];
}
return a;
}
Функция работает нормально (хотя, если есть лучший способ сделать это, я рад это слышать), но у меня возникают проблемы при передаче параметров.
string[] s1 = new string[] {"a","b"};
string[] s2 = Prefix(s1,"z");
Теперь, насколько я могу судить, я передаю s1 по значению. Но когда функция Prefix завершена, s2 и s1 имеют одинаковое значение ["za," zb "], или s1 был передан по ссылке. Я был уверен, что вам пришлось явно объявить это поведение в c #, и я очень запутался .