結構是一種可以包含數據成員和方法成員的值類型數據結構。為結構分配數據時不需要從托管堆中分配記憶體,結構類型的變數直接包含了該結構的數據。結構中可以包含構造函數,常量,欄位方法,屬性,運算符,事件和嵌套類型等,但如果要同事包括上述幾種成員,則應該考慮使用類。 結構是一種可以包含數據成員和方法成員的值類型 ...
-
結構是一種可以包含數據成員和方法成員的值類型數據結構。為結構分配數據時不需要從托管堆中分配記憶體,結構類型的變數直接包含了該結構的數據。結構中可以包含構造函數,常量,欄位方法,屬性,運算符,事件和嵌套類型等,但如果要同事包括上述幾種成員,則應該考慮使用類。
使用結構對於小的數據結構特別有用,能夠節省大量的分配記憶體,如複數和坐標系中的點。
結構具有以下特點:
結構是值類型。
向方法傳遞結構時,是通過傳值方式傳遞的,而不是作為應用傳遞的。
結構的實例化可以不使用new運算符。
機構可以聲明構造函數,但它們必須帶參數。
一個結構不能從另一個結構或類繼承。所有結構都直接繼承自 system.valueType。
結構可以實現介面。
在結構中初始化實例欄位是錯誤 的。
-
結構和類的區別
結構是值類型,它在棧上分配數據,並且結構的賦值將分配產生一個新的對象;而類是引用類型,它在堆上分配數據,對類的對象進行賦值時只是複製了引用,它們都指向同一個實際對象分配的記憶體。