結構體和類

結構體struct
1、訪問修飾符:可以是public,internal默認爲internal,結構體不能被繼承,所以沒有protected修飾符。
2、結構的實例字段不能在聲明時初始化。
3、內部的構造函數必須有參數
 
和類的區別:
1、在類中,定義有參數的構造函數後,默認無參數的構造函數將消失;
       在結構體中,定義有參數的構造函數後,默認無參數的構造函數將仍然存在。
2、結構體在堆棧中創建,是值類型,類是引用類型。前者不是面向對象的,後者是面向對象的。
3、class和struct有一個重要區別,那就是class聲明的類成員、變量、函數如果沒有指定類型,默認爲private;而struct聲明的結構體中的成員、變量、函數則是public的。注意:struct和class不是類型,而是定義類型的關鍵字(可以將類和結構體看做是類型)。
4、結構體數組效率比類數組效率高,因爲不需要裝箱和拆箱。結構體集合效率比類集合效率低。集合的元素是引用類型,所以結構體必須進行裝箱和拆箱處理。所以類在大的集合更有效率。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章