黑马程序员技术交流社区

标题: 通过“值”和通过“引用”传递引用参数 [打印本页]

作者: 汪振    时间: 2013-3-13 10:17
标题: 通过“值”和通过“引用”传递引用参数
本帖最后由 汪振 于 2013-3-13 10:18 编辑

http://blog.csdn.net/zj_alex/article/details/8666902
  1. private void BtnResult_Click(object sender, EventArgs e)//Click事件
  2.         {
  3.             int[] sz = { 1, 2, 3, 4 };//
  4.             int[] szCopy = sz;

  5.             string output = "";//output

  6.          <font color="#0000ff" size="5">   DoubleArray(sz);(引用时是否使用ref)</font>

  7.             for (int i = 0; i < sz.Length; i++)
  8.             {
  9.                 output += " " + sz[i];
  10.             }
  11.             lab1.Text = output;

  12.             if (sz == szCopy)
  13.             {
  14.                 lab1.Text += "\r" + "sz没有发生改变一样";
  15.             }
  16.             else { lab1.Text += "\r" + "不一样了,sz发生了改变"; }
  17.         }


  18.         void DoubleArray(int[] a)//不用ref
  19.         {
  20.             for (int i = 0; i < a.Length; i++)
  21.             {
  22.                 a[i] *= 2;
  23.             }
  24.             a = new int[] { 11, 12, 13, 14 };
  25.         }

  26.         void DoubleArray(ref int[] a)//使用ref
  27.         {
  28.             for (int i = 0; i < a.Length; i++)
  29.             {
  30.                 a[i] *= 2;
  31.             }
  32.             a = new int[] { 11, 12, 13, 14 };
  33.         }
复制代码
有和没有ref 的区别:大多数情况下, 总是期望防止改变调用者的引用,如果确实需要改变,则用过ref 来进行引用传递引用参数。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2