c#中數組類型存放位置

用一張圖就能夠清晰的解釋了,以下:數組

wKioL1OK-1HgfI6-AADipRK_gAw423.jpg

數組a和b都是繼承了System.Array類,即都是System.Array的子類,所以都是引用類型,能夠經過代碼獲得驗證:ide


            Console.WriteLine(a.GetType().IsSubclassOf(typeof(System.Array)));blog

            Console.WriteLine(b.GetType().IsSubclassOf(typeof(System.Array)));繼承

看以看到int[] a和和object[] b 都是引用類型,它們各自真正的值都是部署在堆上,而且指向了堆,不一樣點在於,a中的元素是整型,屬於值類型,所以這個值就直接在堆上存放,而b的元素是引用類型,所以這個值並非真正的b中元素的值,還須要指向堆上的另外一個地址(真正存放該值的地址)ip

相關文章
相關標籤/搜索