值類型:數組
值類型源於System.Value家族,每一個值類型的對象都有一個獨立的內存區域用於保存本身的值,值類型性能
所在的內存區域稱之爲棧(Stack),只要在代碼中修改它,就會在內存區域保存這個值。spa
引用類型:對象
引用類型源於 System.Object家族 ,在C#中引用類型主要包括數組,類和接口等blog
結構:接口
定義:
內存
訪問修飾符 struct 結構名開發
{引用
//結構體方法
}
特色:
能夠有字段也能夠有方法
定義時,結構的字段不能被賦值
使用注意:
在某些特定狀況下能夠不用new,直接定義結構對象便可(儘量的去new)
聲明結構對象後,必須給結構體的成員賦初值
裝箱和拆箱
勸告:
在實際開發之中咱們應該減小裝箱與拆箱的使用,由於兩者的存儲方式不一樣,轉換的時候性能損失較大。
值傳遞和引用傳遞:
值傳遞:沒有ref
狀況一:值類型(int):值不會保留
狀況二:引用類型(Student):值會保留
引用傳遞:有ref
狀況一:值類型:值會保留 狀況二:引用類型(Student):值會保留