深入C#数据类型
1.數據類型按存儲方式可分為兩類:
值類型(源于System.ValueType)
引用類型(源于System.Object)
2.結構的定義:
結構中可以有字段也可以有方法
定義時,結構中的字段不能被賦初值
3.結構的使用:
可以不用new,直接定義結構的對象即可
(前提該屬性的類型不是數值類型)
聲明結構的對象后,必須給結構的成員賦初值
4.結構是值類型類是引用類型
結構體中沒有默認構造函數,但類中有默認構造函數
?5.裝箱和拆箱:
裝箱:將值類型(棧)轉換成引用類型(棧堆)
拆箱:從引用類型(棧堆)轉換成值類型(棧)
?
?
由于裝箱和拆箱對系統性能損耗很大,所以在真實的開發中我們盡量避免裝箱和拆箱的操作。
6.
如果方法的參數類型本身是值類型,又沒有ref修飾,那么對參數值的修改,不會永久保存
如果方法的參數類型本身是值類型,但是有ref修飾,那么對象參數值的修改,也會永久保存。
?值類型傳遞 :不帶ref的參數傳遞??
引用類型傳遞:帶ref的參數傳遞
引用類型的內存原理圖:
?
數組賦值原理圖
結構體:
結構體不用new,就可以直接對其屬性賦值
結構體中可以有字段,屬性和方法
結構體是值類型,類是引用類型
在結構體中不能給字段賦初值,但是類中可以.
結構體中沒有默認構造函數,但類中有默認構造函數
?
轉載于:https://www.cnblogs.com/luoxionghenku/p/8159187.html
總結
- 上一篇: Maven中使用tomcat:run 出
- 下一篇: Java并发编程之ThreadLocal