C#数组类型

        近日在学习中发现一个小问题一直没有注意,就是数组传值时,改变形参的值,同时实参的值也会改变,这又是因为什么呢?接下来就跟着我探究一下!
        这是因为所有数组类型都隐式地派生自System.Array对象,因而是引用类型,只是对同一地址内容的引用,不开辟新的内存空间,因而复制时比较快。

   	static void Main(string[] args)
    {
        int[] m = new int[] { 121, 122, 123 };
        //修改前
        Console.WriteLine("修改前:" + m[m.Length - 1]);
        ArrayTest(m);

        //修改后
        Console.WriteLine("修改后:" + m[m.Length - 1]);
    }

    protected static void ArrayTest(int[] n)
    {
        //数组n不为空
        if (n.Length > 0)
        {
            n[n.Length - 1] = 10;
        }
    }

运行截图:
C#数组类型_第1张图片

你可能感兴趣的:(C#,c#)