您好,登錄后才能下訂單哦!
小編給大家分享一下C#結構實例是怎么樣的,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
類與結構有很多相似之處:結構可以實現接口,并且可以具有與類相同的成員類型。然而,結構在幾個重要方面不同于類:結構為值類型而不是引用類型,并且結構不支持繼承。結構的值存儲在“在堆棧上”或“內聯”。細心的程序員有時可以通過聰明地使用結構來增強性能。
例如,將 Point 定義為結構而不是類在運行時可以節省很多內存空間。下面的程序創建并初始化一個 100 點的數組。對于作為類實現的 Point,出現了 101 個實例對象,因為數組需要一個,它的 100 個元素每個都需要一個。
class Point { public int x, y; public Point(int x, int y) { this.x = x; this.y = y; } } class Test { static void Main() { Point[] points = new Point[100]; for (int i = 0; i < 100; i++) points[i] = new Point(i, i*i); } }
如果將 Point 改為作為C#結構實現,如
struct Point { public int x, y; public Point(int x, int y) { this.x = x; this.y = y; } }
則只出現一個實例對象(用于數組的對象)。Point 實例在數組中內聯分配。此優化可能會被誤用。使用結構而不是類還會使應用程序運行得更慢或占用更多的內存,因為將C#結構實例作為值參數傳遞會導致創建結構的副本。
以上是“C#結構實例是怎么樣的”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。