程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 語言標准--1.8 結構

C# 語言標准--1.8 結構

編輯: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 改為作為結構實現,如

struct Point



{



   public int x, y;



   public Point(int x, int y) {



      this.x = x;



      this.y = y;



   }



}

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

 

  1. 上一頁:
  2. 下一頁: