深入C#數據類型
值類型:所有的值類型的引用都存儲在棧中
值類型賦值原理:在棧上復制的真實值
引用類型:
堆上存儲的真實對象本身真實對象的屬性
(1)堆上開空間存數據
(2)堆上的內存地址存儲到棧空間中
(3)從棧指向堆上的真實對象
對值類型,不同的變量會分配不同的儲存空間,並且儲存空間中儲存的是該變量的值。
賦值操作傳遞的是變量的值,改變一個變量不會影響另一個變量的值
對引用類型,賦值是把原對象的引用傳給另一個引用。對數組而言。
當一個數組引用賦值給另一個數組引用後,這兩個引用指向同一個數組,也就是指向同一塊儲存空間
結構:
結構的定義
語法:
訪問修飾符 struct 結構名{//結構體}
@結構中可以有字段,也可以有方法
@定義時,結構中的字段不能被賦初始值
@在不去new 結構類時,不能有屬性
@聲明結構的對象後,必須給結構所有成員賦初值。
裝箱和拆箱
值類型轉換為引用類型成為裝箱,反之成為拆箱
引用方式參數傳遞
(基本數據類型,如,整形,浮點型,字符型,bool行及結構屬於值類型;數組,接口和類屬於引用類型)
使用值方式(不用ref修飾)傳遞值類型參數時,參數在方法中的修改不會保留
使用值方式(不用ref修飾)傳遞引用類型參數時,參數在方法中的修改會保留
使用引用方式(用ref修飾)傳遞值類型或引用類型參數時,參數在方法中的修改都會保留
深入C#數據類型