C#結構體與類區別
阿新 • • 發佈:2018-12-26
1. 結構體與類定義方式
結構體定義使用struct類定義使用class
結構體:
struct testDemo{
int num;
void action(){
}
}
類:
class testDemo{
int num;
void action(){
}
}
==================
2. 結構體與類的成員初始化
- 結構體成員變數在宣告時不能賦值,而類在宣告變數時會自動寫入建構函式完成賦值(即只能定義,不能執行)。
- 結構體中隱式建構函式存在,不能手動寫,其餘建構函式在手動編寫中必須對所有成員變數初始化。
- 在結構體建立中,若使用new建立,則可以使用其中的成員變數(隱式建構函式會為所有成員變數賦值,對於值型別初始化為0,引用型別為null)
- 結構體不能再繼承(結構體繼承自Object),但可以implements介面
3.結構體與類最大的區別
- 結構體是值型別,類是引用型別.
- 結構體在棧中,訪問速度快,空間小。類在堆中,訪問速度比棧慢,空間大。
- 結構體是值型別,類是引用型別。