C#中結構體和類的區別
1.結構體是值類型,類是引用類型
雖然結構體的初始化也使用了new操作符,可是結構體對象依然分配在堆棧上而不是堆上,如果不使用“新建”(new),
那么在初始化所有字段之前,字段將保持未賦值狀態,且對象不可用。
2.結構體不能從另外一個結構或者類繼承,本身也不能被繼承,雖然結構沒有明確的用sealed聲明,可是結構是隱式的sealed
類完全可擴展的,除非顯示的聲明sealed 否則類可以繼承其他類和接口,自身也能被繼承
雖然結構不能被繼承,可是結構能夠繼承接口,方法和類繼承接口一樣
3.結構:
沒有默認的構造函數,但是可以添加構造函數
沒有析構函數
沒有abstract和sealed(因為不能繼承)
不能有protected修飾符
可以不使用new初始化
在結構中初始化實例字段是錯誤的
類:
有默認的構造函數
有析構函數
可以使用abstract和sealed
有protected修飾符
必須使用new初始化
作者: 王德田 發表于 2011-02-28 18:37 原文鏈接
最新新聞:
· Firefox 4 將是 Mozilla 最后一個大發行版(2011-03-01 17:06)
· 凡客V+商城月均銷售額過6000萬(2011-03-01 16:33)
· 未來,很好玩 —— 談下一代掌機(2011-03-01 16:31)
· Red Hat改變內核源代碼打包方式(2011-03-01 16:29)
· 分析預計Facebook今年廣告營收將接近22億美元(2011-03-01 16:25)