数组作为形参传值,不改变数组原值

 int[] a = null;
 NewMethod(a);  
  List<int> k = new List<int>();
            k.Add(1);
            k.Add(2);
            a = k.ToArray();   

运行结果a还是NULL,按照C#的定义,数组是引用类型,运行代码后数组a的应该赋值成功

void NewMethod(ref int[] a)

数组是引用没错,它的意思是,你对引用类型的更改反应到调用者,但是你不能将引用类型指向另一个对象。
比如
int[] a = { 1, 2 };
NewMethod(a);
Console.WriteLine(a[0]);

void NewMethod(int[] a)
{
a[0] = 10;
a[1] = 20;
}
主程序调用后它的数组元素也更改了。