1. 程式人生 > WINDOWS開發 >《刻意練習之C#》-0017- C#中類和結構體的區別

《刻意練習之C#》-0017- C#中類和結構體的區別

類和結構體實際上都是建立物件的模板,每個物件都包含資料,並提供了處理和訪問資料的方法。

類是引用型別,總是儲存在堆(heap)上;

結構體是值型別,通常儲存在棧(stack)上,結構體不支援繼承。

較小的資料型別使用結構體可以提高效能;在棧上儲存值型別可以避免垃圾收集。

對於類和結構體,都使用關鍵字new來宣告例項:建立物件並對其進行初始化。

類示例:

    class Customer
    {
        public int CustomerId { get; set; }
        public string Name { get; set; }
    }

  

結構體示例:

    struct CustomerStruct
    {
        public int CustomerId { get; set; }
        public string Name { get; set; }
    }

  

宣告例項和使用:

    class Program
    {
        static void Main(string[] args)
        {
            var testClass = new Customer()
            {
                CustomerId = 100,Name = "Name 100"
            };

            var testStruct = new CustomerStruct()
            {
                CustomerId = 200,Name = "Name 200"
            };

            Console.WriteLine($"Class: {testClass.CustomerId} - {testClass.Name} ");
            Console.WriteLine($"Struct: {testStruct.CustomerId} - {testStruct.Name}");
        }
    }

注意:

類和結構體的一個重要區別四,類型別的物件通過引用傳遞,結構體型別的物件按值傳遞。