A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 汪振 于 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 来进行引用传递引用参数。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马