国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > C# > 正文

C#靜態(tài)方法和實例方法辨析和實例

2023-05-08 19:02:31
字體:
來源:轉載
供稿:網(wǎng)友

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

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

c#靜態(tài)方法和實例方法的幾種用法

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


 
  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.     //第一種方式, 聲明實例,調(diào)用實例方法   
  13.   SomeClass someClass = new SomeClass();   
  14.    someClass.instanceMethod();   
  15.  //第二種方式,通過一個靜態(tài)的實例,去調(diào)用實例方法   
  16.   SomeClass.instance.instanceMethod();   
  17.  //第三種方式,直接調(diào)用靜態(tài)方法   
  18.   SomeClass.staticMethod();   
  19.    }   
  20. }  

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

"靜態(tài)方法是常駐內(nèi)存"

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

圖1

"靜態(tài)方法比實例方法先裝載"

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

何時用靜態(tài)方法,何時用實例方法

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

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

第一種方式, 聲明實例,調(diào)用實例方法

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

第二種方式,通過一個靜態(tài)的實例,去調(diào)用實例方法

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

第三種方式,直接調(diào)用靜態(tài)方法

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
午夜影院免费| 免费视频二区| 国产免费人人看| 好看的中文字幕在线播放| 狠狠干五月天| 国产一区在线视频观看| 国产一级电影网| 99久久99久久免费精品小说| 永久免费在线观看| 黄色片免费在线| 最近中文字幕大全中文字幕免费 | 国产精品186在线观看在线播放 | 国产视频第一区| 精品剧情v国产在线观看| av亚洲在线| 成在在线免费视频| 国产寡妇树林野战在线播放| a中文在线播放| 国产亚洲依依| 午夜小视频在线| 国产色a在线观看| 九九热在线播放| 99re6在线视频精品免费| 日本不卡影院| 国产三级在线观看| 久久这里精品| eeuss在线观看| 精品欧美日韩一区二区| 中文字幕在线视频观看| 超碰97在线免费观看| 国产超碰在线| 国产精品视频一区二区久久| 青草av在线| 超碰97国产精品人人cao| 国产白浆在线| 国产夫妻视频| 999国产在线视频| 国产www在线观看| 国产精品久久一区二区三区不卡| wwwww在线观看免费视频| 91嫩草在线播放| ·天天天天操| 在线视频1区2区| 精灵使的剑舞无删减版在线观看| 国产免费视频在线| 成人午夜无人区一区二区| 开心快乐六月丁香婷婷| 欧美性猛交xxxx免费看蜜桃| 亚洲妇熟xxxx妇色黄| 99久热re在线精彩视频| 亚洲国产日韩在线人成电影| 在线免费黄色毛片| 日本成人a视频| 成视频年人免费看黄网站| 青青草原国产在线观看| 先锋av资源网| 黄网站在线观看高清免费| 福利资源在线久| 国产精品jvid在线观看| 中文字幕av高清在线观看| www.夜夜操| 国产午夜在线观看| 在线看黄网址| 高潮白浆视频| 国产xxx在线| www.亚洲视频| 中文字幕在线观看av| 精品51国产黑色丝袜高跟鞋| 欧美日韩亚洲第一页| 天天操天天操一操| 精品美女在线观看视频在线观看 | 亚洲欧美综合乱码精品成人网| av一本在线| 国产一级二级三级在线观看| jizz性欧美| 国产高清在线| 激情综合丁香| 亚洲社区在线| 国产国产国产国产国产国产| 九九精品九九| 日韩不卡高清| 在线观看的av| 国产人成精品| 国产一区在线视频观看| 日本电影全部在线观看网站视频| 国产黄色一级电影| 尤物视频免费在线观看| а√资源新版在线天堂| 国产黄大片在线观看画质优化| 狠狠干天天爱| 浪潮av一区| 欧美韩日国产| 免费看的毛片| 超碰在线免费播放| 免费在线黄色av| 在线视频观看亚洲| 99re在线视频| 国产h在线观看| 国产经典av| 国产福利小视频在线| 99热在线免费观看| 国产美女在线播放| 国产精品xxx电影| a视频在线看| www.操.com| 波多野结衣久久高清免费| 在线三级中文| 日本在线视频www鲁啊鲁| 国产www网站| 国产网红在线| 国产精品9区| 99热免费观看| 在线视频婷婷| 亚洲第一区视频| 秋霞av在线| 国产免费网址| 国产特黄在线| 精品一区二区三区在线成人| av在线日韩国产精品| 黄色片视频在线观看| 国产亚洲精品久久久网站好莱| 国产娇喘精品一区二区三区图片| 国产高清av| 四虎成人免费| 日本中文字幕视频| av在线1区2区| 中文字幕人成高视频| 国产福利电影在线| 在线国产三级| 午夜国产福利在线| 精品福利影院| 国产乱子视频| h网站久久久| 国产精品视频一区二区免费不卡| 影音先锋中文字幕在线 | 伊人影院在线观看| 国产精品一区二区资源| 亚洲欧美精选| 国产精品入口麻豆电影| www.91av| 在线视频中文字幕久| 成人免费一区二区三区视频网站| 91最新在线| √天堂8资源中文在线| 四虎国产精品永久| 在线一区观看| 国产香蕉在线| 最近中文字幕av免费高清| 欧美色欧美亚洲另类二区精品 | 国产精品人人爱一区二区白浆| 午夜在线不卡| 97操碰视频| 国产精品区一区二| 五月婷婷开心综合| eeuss影院在线观看第一页| 国产福利图片| 国产黄视频在线观看| 国产亚av手机在线观看| 国产精品自拍在线观看| 九九99精品| 九九热在线观看| 成年人在线观看| 国产女王在线**视频 | 99reav| 国产成人精品久久一区二区小说 | 国产一级二级在线| 国产一级免费黄色片| 综合蜜桃精品| 噜噜噜噜噜在线视频| 全网国产福利在线播放| 四虎精品成人a在线观看| 日本18视频网站| 国产中文字幕在线看| 国产精品亚洲色图| 国产精品18久久久久久久久久 | 国产三区视频在线观看| 国产经典自拍视频在线观看 | www.国产精| 免费不卡中文字幕视频| 久久久久久77777| 国产一起色一起爱| 91精品专区| 免费电影网站在线视频观看福利| 久久香蕉av| 国产福利在线视频| 欧美日韩不卡中文字幕在线| 国产免费一级片| 伊人伊人av电影| 中文字幕色视频| 日本视频在线| 国产欧美日韩专区| 天天插天天色| 国产精品入口麻豆高清| 亚洲字幕成人中文在线观看| 国内精品免费一区二区三区| 伊人中文在线| 国产精品第八页| 国产美女免费观看| 三级小说一区| 在线中文字幕视频|