【发布时间】:2010-10-11 17:07:05
【问题描述】:
我有下面的一段代码,它在字符串数组的每个成员的开头添加了一个字符串前缀。 IE。以“z”为前缀的 ["a","b","c"] 变为 ["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# 中显式声明这种行为,我很困惑.
【问题讨论】:
标签: c# parameter-passing