1、C# 數組是值類型還是引用類型,對數組有什么更深層次的理解?


一、數組是什么類型?

案例:

 

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、值類型數組和應用類型數組的初始化差異

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM