天天看點

C# 結構(很少能用到)

結構示例

類示例

調用過程

從上面的例子中我們可以看到,類的聲明和結構的聲明非常類似,隻是限定符後面是 struct還是 class的差別,而且使用時,定義新的結構和定義新的類的方法也非常類似。那麼類和結構的具體差別是什麼呢?

結構可以看作是輕量級的類,在性能上要好一點。

相同之處:

·        結構和類對于程式來講都通過指針操作,同樣是面向對象的形式。

不同之處:

·        結構體對象總是線上程堆棧上操作,而不是托管堆上。

·        不能繼承一個結構體(是以在調用結構體的方法時不需要查找

vtable: 虛函數繼承表)

·        我們不能聲明構造函數為空的結構體

·        結構體的構造函數内必須初始化所有變量

·        結構體的字段不能有預設值(預設都是二進制意義上的零值),但是可以在構造函數内改變“預設值”

小結:結構可用于表示互相聯系的資料。可以通過句點字元通路結構的資料成員。