1. 程式人生 > >深入C#數據類型

深入C#數據類型

參數 裝箱 image img 深入 基本 內存 浮點型 pan

  值類型:所有的值類型的引用都存儲在棧中

      值類型賦值原理:在棧上復制的真實值

  引用類型:  

      堆上存儲的真實對象本身真實對象的屬性

      (1)堆上開空間存數據
      (2)堆上的內存地址存儲到棧空間中
      (3)從棧指向堆上的真實對象

   對值類型,不同的變量會分配不同的儲存空間,並且儲存空間中儲存的是該變量的值。

        賦值操作傳遞的是變量的值,改變一個變量不會影響另一個變量的值

   對引用類型,賦值是把原對象的引用傳給另一個引用。對數組而言。

         當一個數組引用賦值給另一個數組引用後,這兩個引用指向同一個數組,也就是指向同一塊儲存空間

   結構:

      結構的定義

        語法:

          訪問修飾符 struct 結構名{//結構體}

          @結構中可以有字段,也可以有方法

@定義時,結構中的字段不能被賦初始值

          @在不去new 結構類時,不能有屬性

          @聲明結構的對象後,必須給結構所有成員賦初值。

    裝箱和拆箱

       值類型轉換為引用類型成為裝箱,反之成為拆箱

      技術分享圖片

        引用方式參數傳遞

        (基本數據類型,如,整形,浮點型,字符型,bool行及結構屬於值類型;數組,接口和類屬於引用類型)

        使用值方式(不用ref修飾)傳遞值類型參數時,參數在方法中的修改不會保留

        使用值方式(不用ref修飾)傳遞引用類型參數時,參數在方法中的修改會保留

        使用引用方式(用ref修飾)傳遞值類型或引用類型參數時,參數在方法中的修改都會保留

  

深入C#數據類型