<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C#類在什么時候分配內存

       

      C#類在什么時候分配內存

       

               一直以為內存分配是在調用構造函數的時候。現在發現我錯了。

       

        昨天在看C++的賦值運算時,想做一下筆記。一個類賦值給另一個類時,先調用構造函數,在給成員變量一個個賦值,靜態成員變量不用賦值,因為靜態成員變量屬于類,被類的所有實例共享,所以不用被賦值,方法屬于類,不用被賦值,也賦不了值。

       

      突然想到調用靜態的屬性或方法時不需要調用構造函數,因為調用構造函數只是產生一個新的實例,靜態的屬性或方法屬于類嗎,調用它們根本不用產生實例,我突然想尖叫,不調用構造函數,怎么分配內存,不分配內存類的屬性存哪里,連內存都沒有怎么訪問它。

       

      所以我猜測內存在調用構造函數之前就分配好了,構造函數只是做一些初始化工作。

       

      下面是我的測試:

       

       

            

              

       

      從圖中我們可以看出,在調用構造函數之前,成員變量已經初始化了,a=1,說明他們已經有屬于他們的內存了,不然a=1,s=1中的1往哪存,你不要告訴我說不需要內存。調用構造函數再對非靜態成員變量進行初始化。在調用靜態方法PrintStatic的過程中的確沒有調用構造函數,大家都知道不需要調用構造函數。靜態方法中只能調用靜態的方法和屬性,而屬性的定義,以及在定義的時候給一個初值,都是在調用構造函數之前,一切都說明屬性在調用構造函數之前已經分配內存了,所以請不要說:內存在調用構造函數的時候分配。

       

      一個類占用的內存是多少?我是這樣認為的:

       

      一個類所占的內存等于=屬性總內存+方法總內存+應用該類的指針所占的內存+同步索引塊的大小。

       

      屬性肯定是占內存的,至于方法,應該也占吧,不知道方法的內存首地址,怎么訪問它。除了方法所在的內存,其他三個都是必須占內存的,類中可以沒有方法嗎,所以將基本類型賦給object類型(裝箱),會多分配很多內存。

       

      而這些所需的內存編譯器是非常清楚的,所以在調用構造函數之前調用完全可以分配內存。

       

       作者:陳太漢

       

       

       

      posted @ 2011-08-04 11:35  古文觀芷  閱讀(8174)  評論(83)    收藏  舉報
      主站蜘蛛池模板: 久久国产精品老人性| 免费A级毛片无码A∨蜜芽试看| 97se亚洲综合自在线| 成人区人妻精品一区二蜜臀| 最新国产精品中文字幕| 国产熟女精品一区二区三区| 免费大片av手机看片高清| 国产精品一二三区久久狼| 甘德县| 伊人激情一区二区三区av| 国99久9在线 | 免费| 人妻日韩精品中文字幕| 亚洲国产成人va在线观看天堂| 亚洲国产精久久久久久久春色| 久久天天躁狠狠躁夜夜不卡| 亚洲精品久久一区二区三区四区| 国产美女裸身网站免费观看视频| 无码国产精品一区二区免费式芒果| 日韩亚洲国产激情一区二区| 国产一区二区日韩经典| 国产精品有码在线观看| 四虎国产精品永久地址99| 久久不见久久见免费视频观看| 国产无遮挡猛进猛出免费软件| 欧洲精品码一区二区三区| 91偷自国产一区二区三区| 欧美性群另类交| 亚洲V天堂V手机在线| 九九热在线视频观看最新| 精品人妻一区二区三区蜜臀| 韩国精品一区二区三区在线观看 | 思热99re视热频这里只精品| 免费人成在线观看品爱网| 亚洲欧美综合一区二区三区| 国产一区二区高潮视频| 怀安县| 国产一级小视频| 午夜精品视频在线看| 亚洲永久一区二区三区在线| 国产成人精品亚洲午夜麻豆| aa性欧美老妇人牲交免费|