• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • C# 語言規范--1.8 結構

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    C# 語言規范--1.8 結構: 類與結構有很多相似之處:結構可以實現接口,并且可以具有與類相同的成員類型。然而,結構在幾個重要方面不同于類:結構為值類型而不是引用類型,并且結構不支持繼承。結構的值存儲在“在堆棧上”或“內聯”。細心的 程序員 有時可
    C# 語言規范--1.8 結構:

    類與結構有很多相似之處:結構可以實現接口,并且可以具有與類相同的成員類型。然而,結構在幾個重要方面不同于類:結構為值類型而不是引用類型,并且結構不支持繼承。結構的值存儲在“在堆棧上”或“內聯”。細心的程序員有時可以通過聰明地使用結構來增強性能。

    例如,將 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 改為作為結構實現,如

    struct Point{   public int x, y;   public Point(int x, int y) {      this.x = x;      this.y = y;   }}

    則只出現一個實例對象(用于數組的對象)。Point 實例在數組中內聯分配。此優化可能會被誤用。使用結構而不是類還會使應用程序運行得更慢或占用更多的內存,因為將結構實例作為值參數傳遞會導致創建結構的副本。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>