黑马程序员技术交流社区
标题:
通过“值”和通过“引用”传递引用参数
[打印本页]
作者:
汪振
时间:
2013-3-13 10:17
标题:
通过“值”和通过“引用”传递引用参数
本帖最后由 汪振 于 2013-3-13 10:18 编辑
http://blog.csdn.net/zj_alex/article/details/8666902
private void BtnResult_Click(object sender, EventArgs e)//Click事件
{
int[] sz = { 1, 2, 3, 4 };//
int[] szCopy = sz;
string output = "";//output
<font color="#0000ff" size="5"> DoubleArray(sz);(引用时是否使用ref)</font>
for (int i = 0; i < sz.Length; i++)
{
output += " " + sz[i];
}
lab1.Text = output;
if (sz == szCopy)
{
lab1.Text += "\r" + "sz没有发生改变一样";
}
else { lab1.Text += "\r" + "不一样了,sz发生了改变"; }
}
void DoubleArray(int[] a)//不用ref
{
for (int i = 0; i < a.Length; i++)
{
a[i] *= 2;
}
a = new int[] { 11, 12, 13, 14 };
}
void DoubleArray(ref int[] a)//使用ref
{
for (int i = 0; i < a.Length; i++)
{
a[i] *= 2;
}
a = new int[] { 11, 12, 13, 14 };
}
复制代码
有和没有ref 的区别:
大多数情况下, 总是期望防止改变调用者的引用,如果确实需要改变,则用过ref 来进行引用传递引用参数。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2