C#中数组作为函数参数的传递方式

时间:2022-08-30 19:38:54
   1:  private void TestFun(Byte[] Temb)
   2:   
   3:  {
   4:   
   5:  Temb[0] = 20;
   6:   
   7:  byte[] TemBB = { 8, 9, 10, 11 };
   8:   
   9:  Temb = TemBB;
  10:   
  11:  }
  12:   
  13:  private void button1_Click(object sender, EventArgs e)
  14:   
  15:  {
  16:   
  17:  Byte[] TemBa = { 1, 2 };
  18:   
  19:  TestFun(TemBa);
  20:   
  21:  Debug.WriteLine(TemBa[0]);
  22:   
  23:  }

会输出20

说明数组作为一个传递的参数,可以在调用的函数中改变数值的元素的值

但是如果new 的话,不能影响原始的数组

说明传递是一个按值传递的,而且传递的是地址!!!!!

本质来说还是按值传递,而不是引用传递

可以通过ref参数来引用传递