国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

C# 語言規(guī)范--1.8 結(jié)構(gòu)

2024-07-21 02:29:59
字體:
供稿:網(wǎng)友

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

    例如,將 point 定義為結(jié)構(gòu)而不是類在運行時可以節(jié)省很多內(nèi)存空間。下面的程序創(chuàng)建并初始化一個 100 點的數(shù)組。對于作為類實現(xiàn)的 point,出現(xiàn)了 101 個實例對象,因為數(shù)組需要一個,它的 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 改為作為結(jié)構(gòu)實現(xiàn),如

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

    則只出現(xiàn)一個實例對象(用于數(shù)組的對象)。point 實例在數(shù)組中內(nèi)聯(lián)分配。此優(yōu)化可能會被誤用。使用結(jié)構(gòu)而不是類還會使應(yīng)用程序運行得更慢或占用更多的內(nèi)存,因為將結(jié)構(gòu)實例作為值參數(shù)傳遞會導(dǎo)致創(chuàng)建結(jié)構(gòu)的副本。

  • 本文來源于網(wǎng)頁設(shè)計愛好者web開發(fā)社區(qū)http://www.html.org.cn收集整理,歡迎訪問。
  • 發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發(fā)表
    主站蜘蛛池模板: 乐东| 常德市| 治多县| 宜宾县| 汉阴县| 上虞市| 景泰县| 浦北县| 临洮县| 共和县| 长岭县| 富锦市| 上林县| 浏阳市| 安义县| 彭阳县| 上饶县| 彰化县| 德昌县| 涿鹿县| 新龙县| 泰来县| 宜兰市| 曲周县| 海安县| 定日县| 富蕴县| 陇南市| 宁明县| 武胜县| 仁化县| 巩义市| 肥东县| 昌黎县| 墨竹工卡县| 昌邑市| 汝南县| 三原县| 青神县| 监利县| 建昌县|