亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#靜態方法和實例方法辨析和實例

2023-05-08 19:02:31
字體:
來源:轉載
供稿:網友

本文將圍繞c#靜態方法和實例方法討論一下。針對一些觀點,如:"靜態方法是常駐內存", 還有"靜態方法比實例方法先裝載",做一個辨析。同時討論下何時用靜態方法,何時用實例方法。

前幾日,在微軟的好友發給我一個鏈接:《靜態方法和實例化方法之間的區別你知道了嘛? 歡迎討論??! - 問題最終 ...》,然后說這里某些觀點需要澄清一下,希望我寫一篇blog。我當時讀了這篇blog. 文比較短,列舉了靜態方法和實例方法的幾種案例,也沒有論點,然后就請大家討論。后面評論就比blog熱鬧多了。言辭也激烈,后來該blog作者干脆把這篇blog刪了。現在已經看不到這篇blog了?,F在我寫這篇blog,一是針對一些觀點做個辨析,二是完成好友的所托。

c#靜態方法和實例方法的幾種用法

見如下代碼:這三種形式我們應該都用過。


 
  1. public class SomeClass   
  2. {   
  3. private string myfield = null;   
  4. public static instance = new SomeClass();   
  5. public instranceMethod() {};   
  6. public static staticMethod() {};   
  7. }   
  8.  public class AnotherClass   
  9.  {   
  10.  public static Main()   
  11.    {   
  12.     //第一種方式, 聲明實例,調用實例方法   
  13.   SomeClass someClass = new SomeClass();   
  14.    someClass.instanceMethod();   
  15.  //第二種方式,通過一個靜態的實例,去調用實例方法   
  16.   SomeClass.instance.instanceMethod();   
  17.  //第三種方式,直接調用靜態方法   
  18.   SomeClass.staticMethod();   
  19.    }   
  20. }  

這幾種方式在調用時間,還有線程安全,面向對象的編程方面都有差別。后文會談到。

"靜態方法是常駐內存"

這是那位blog作者在評論中給出的觀點。我覺得"靜態方法是常駐內存"的說法是不對的。要知道一個.NET類型的靜態方法是屬于這個.NET類型的。而這個.NET類型是一個.NET 程序集的一部分。這個.NET程序集是被一個AppDomain裝入到內存里面來的。這個AppDomain是可以從內存卸載的。一個有.NET CLR的進程里面可以有多于一個的AppDomain,第一個AppDomain之后的AppDomain都可以動態創建和卸載。這些AppDomain中的.NET程序集,既可以有靜態方法,也可以有實例方法。不管是靜態方法還是實例方法,都是隨其程序集所在的AppDomain一起創建和卸載。第一個AppDomain在整個程序運行結束時也會最后被卸載。其中所含的.NET程序集自然也卸載??磮D1會更明白點。所以靜態方法不存在常駐內存一說。

圖1

"靜態方法比實例方法先裝載"

這也是那篇blog的評論中某些人提出的觀點。我不知道他們的論據是什么,但是我已經做過實驗,而且也寫過這兩篇blog關于.NET反射和metadata加載--致Jeffray Zhao等幾位和firelong和[繼續討論]關于Windows PE和.NET assembly的加載來證明.NET程序集的加載方式是整個地加載,而不是用到某個metadata才加載該metadata, 用到某個方法才加載該方法。因為靜態方法和實例方法同屬于一個.NET類型,而一個.NET類型屬于一個.NET程序集。在整個地加載一個.NET程序集的時候,不管是靜態方法還是實例方法,都隨該程序集全部加載進內存。所以"靜態方法比實例方法先裝載"也是不成立的。

何時用靜態方法,何時用實例方法

先說實例方法,當你給一個類寫一個方法,如果該方法需要訪問某個實例的成員變量時,那么就將該方法定義成實例方法。一類的實例通常有一些成員變量,其中含有該實例的狀態信息。而該方法需要改變這些狀態。那么該方法需要聲明成實例方法。

靜態方法正好相反,它不需要訪問某個實例的成員變量,它不需要去改變某個實例的狀態。我們把該方法定義成靜態方法。

第一種方式, 聲明實例,調用實例方法

當一個類有多個實例,例如學生這個類,實例可以有學生甲,學生乙,學生丙,等等,我們就用第一種方式。在多線程的情況下,只要每個線程都創建自己的實例,那么第一種方法通常是線程安全的。

第二種方式,通過一個靜態的實例,去調用實例方法

這種情況比較特殊,通常是整個程序里該類唯一的一個實例,我們通過調用該實例的實例方法來改變該實例的某些狀態。這一個實例在多線程的情況下,通常是線程不安全的。除非我們給這個實例加鎖。防止其他線程訪問該實例。

第三種方式,直接調用靜態方法

這種情況下靜態方法不需要去改變某個實例的狀態。只要得到少量的參數就可完成既定事情。比如判斷一個文件是否存在,只要給個文件路徑和文件名,就能知道該文件是否存在。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩一区视频在线| 欧美不卡视频一区发布| 欧美性生交大片免费| 亚洲国产精彩中文乱码av在线播放| 亚洲最大成人免费视频| 久久久久久国产精品三级玉女聊斋| 欧美激情一区二区三区久久久| 欧美大片在线影院| 国产精品一区久久| 欧美日韩免费观看中文| 亚洲精品日韩欧美| 精品福利在线视频| 精品国产91久久久| 精品国产拍在线观看| 午夜精品久久久久久99热| 欧美成人网在线| 欧美在线www| 欧洲永久精品大片ww免费漫画| 亚洲精品视频久久| 国产精品一区二区三区毛片淫片| 欧美日韩国产在线看| 日韩精品极品毛片系列视频| 欧美色图在线视频| 日韩电影中文 亚洲精品乱码| 久久精品视频99| 久久成人一区二区| 亚洲视频在线观看视频| 精品国产精品三级精品av网址| 精品中文字幕乱| 午夜精品久久久久久久白皮肤| 亚洲色图在线观看| 国产精品普通话| 在线不卡国产精品| 欧洲亚洲在线视频| 日韩成人av网| 国产精品99蜜臀久久不卡二区| 欧美日韩亚洲成人| 国产中文字幕亚洲| 日韩有码在线视频| 中文字幕不卡在线视频极品| 国产欧美 在线欧美| 日韩电视剧在线观看免费网站| 中文字幕日韩有码| 青草成人免费视频| 美女撒尿一区二区三区| 九九热精品在线| 欧美日韩成人黄色| 久久久久久久久久亚洲| 精品毛片三在线观看| 欧美成人精品在线观看| 国产精品久久久久免费a∨| 亚洲国产成人精品久久久国产成人一区| 成人自拍性视频| 国产精品扒开腿做爽爽爽视频| 2019中文字幕在线| 欧美激情综合色| 久久久久久久久亚洲| 久久久久久久久久久91| 精品一区二区三区四区在线| 爱福利视频一区| 精品香蕉在线观看视频一| 亚洲欧美成人在线| 亚洲**2019国产| 国产精品吹潮在线观看| 98精品在线视频| 亚洲一区美女视频在线观看免费| 岛国av一区二区| 精品日本高清在线播放| 国产91精品久久久久久久| 亚洲2020天天堂在线观看| 中文字幕亚洲欧美日韩在线不卡| 国产视频精品久久久| 精品福利在线看| 亚洲天堂av综合网| 亚洲精品一区在线观看香蕉| www.国产精品一二区| 亚洲第一免费网站| 亚洲精品乱码久久久久久金桔影视| 亚洲全黄一级网站| 欧美裸体视频网站| 日韩av日韩在线观看| 欧美激情第一页xxx| 久久免费成人精品视频| 国产视频久久网| 欧美在线不卡区| 久久亚洲私人国产精品va| 欧美成人午夜剧场免费观看| 久久精品国产亚洲精品| 国产成人久久精品| 久久久国产精彩视频美女艺术照福利| 亚洲在线视频福利| 亚洲中国色老太| 69久久夜色精品国产69| 色久欧美在线视频观看| 亚洲最新av在线网站| 亚洲爱爱爱爱爱| 国产精品无码专区在线观看| 国产精品久久中文| 日韩三级成人av网| 久久久在线观看| 欧美大全免费观看电视剧大泉洋| 国产中文字幕91| 亚洲综合在线做性| 国产成人精品综合久久久| 欧美资源在线观看| 91精品久久久久久久| 色婷婷综合久久久久中文字幕1| 国产日韩在线亚洲字幕中文| 中文字幕欧美精品在线| 97视频在线观看视频免费视频| 久久成人av网站| 国产精品91一区| 欧美刺激性大交免费视频| 亚洲最大激情中文字幕| 久久久www成人免费精品张筱雨| 91九色国产视频| 91老司机在线| 97在线视频国产| 成人妇女免费播放久久久| 日韩中文字幕不卡视频| 欧美孕妇孕交黑巨大网站| 亚洲欧美日韩久久久久久| 亚洲女性裸体视频| 久久这里只有精品视频首页| 91高清免费在线观看| 日韩精品高清在线观看| 欧美猛交ⅹxxx乱大交视频| 欧美电影在线免费观看网站| 欧美成人精品在线播放| 91性高湖久久久久久久久_久久99| 91精品国产91久久久久久不卡| 91久久国产精品91久久性色| 精品亚洲一区二区| 精品久久香蕉国产线看观看亚洲| 97人人模人人爽人人喊中文字| 亚洲天堂男人天堂女人天堂| 亚洲男女性事视频| 久久久久久久999| 亚洲色图av在线| 国产精品91在线观看| 欧美激情亚洲激情| 91精品国产自产在线观看永久| 国产亚洲视频在线观看| 夜夜嗨av一区二区三区四区| 亚洲天堂av在线免费| 成人性教育视频在线观看| 亚洲美女福利视频网站| 日韩成人中文字幕在线观看| 久久久亚洲精品视频| 久久天天躁狠狠躁老女人| 日韩女优人人人人射在线视频| 欧美日韩精品二区| 国产第一区电影| 成年人精品视频| 亚洲白虎美女被爆操| 亚洲xxxx在线| 欧美午夜激情小视频| 91人成网站www| 亚洲另类欧美自拍| www.亚洲男人天堂| 日韩在线中文视频| 色偷偷偷综合中文字幕;dd| 亚洲美女激情视频| 欧美专区第一页|