C# 引用类型公共变量的影响

        public int[] a =new int[2];
        private void button1_Click(object sender, EventArgs e)
        {
            bing(a);
        }
        private void bing(int[] aa)
        {
            aa[0]=3;
            aa[1]=3;
        }

 以上代码 在 button1被点击时  触发bing方法  公共变量 是 a 是个int数组 引用类型,

   当在 bing方法里公共变量a以参数的方式传进来,在bing方法中修改,aa数组 会同步到 全局变量 a上 ,使得公共变量a也会被修改

        public int[] a =new int[2];
        private void button1_Click(object sender, EventArgs e)
        {
            bing(a);
        }
        private void bing(int[] aa)
        {
            aa=new int[] {3,3};
        }

  同样的代码 在bing方法中 由修改变成赋值,这里bing里的aa int数组 改变将不会同步到 a上

       通过分析,在全局变量a传入bing方法时 传递的是地址 给aa ,如果aa被修改 相当于修改了 全局变量 a 数据就会同步 

        如果直接给aa赋值 相当于重新分配了 地址  这样修改就与公共变量a无关了 数据自然不会同步

原文地址:https://www.cnblogs.com/xiongyang123/p/10535866.html