一、數組是什么類型?
案例:
public class Program { public static void Main(string[] args) { int[] intList =new int[3] { 1,2,3}; bool type = intList.GetType().IsValueType; Console.WriteLine($"數組是否為值類型:{type}"); bool itemType = intList[0].GetType().IsValueType; Console.WriteLine($"數組內的元素是否為值類型:{itemType}"); ChangeIntList(ref intList); Console.WriteLine($"intList={intList[0]}, {intList[1]}, {intList[2]}"); Console.Read(); } private static void ChangeIntList(ref int[] intList) { intList[0] = 9; intList[1] = 8; intList[2] = 7; } }
執行結果:
結論:C#數組為引用類型。int[] 數組內的元素為值類型
二、對數組的理解衍生?
1、數組派生於 System.Array
2、int[] 是引用類型,但 int[] 內部的 int 元素是 值類型。且 值類型的 int 元素都位於托管堆上,不在棧上。
3、值類型數組和應用類型數組的初始化差異