最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析C#中靜態(tài)方法和非靜態(tài)方法的區(qū)別

 更新時(shí)間:2017年09月06日 08:56:49   作者:AmosHs丶  
C#靜態(tài)方法與非靜態(tài)方法的區(qū)別不僅僅是概念上的,那么他們有什么具體的區(qū)別呢?讓我們通過本文向大家介紹下C#中靜態(tài)方法和非靜態(tài)方法的區(qū)別,一起看看吧

靜態(tài)方法和非靜態(tài)方法的區(qū)別:

  1.靜態(tài)方法不需要類實(shí)例化就可以調(diào)用,反之非靜態(tài)方法需要實(shí)例化后才能調(diào)用;

  2.靜態(tài)方法只能訪問靜態(tài)成員和方法,非靜態(tài)方法都可以訪問;

  3.靜態(tài)方法不能標(biāo)記為override,導(dǎo)致派生類不能重寫,但是可以訪問;

  4.靜態(tài)成員是在第一次使用時(shí)進(jìn)行初始化。非靜態(tài)的成員是在創(chuàng)建對(duì)象的時(shí)候,從內(nèi)存分配上來說靜態(tài)是連續(xù)的,非靜態(tài)在內(nèi)存的存儲(chǔ)上是離散的,因此靜態(tài)方法和非靜態(tài)方法,在調(diào)用速度上,靜態(tài)方法速度一定會(huì)快點(diǎn),因?yàn)榉庆o態(tài)方法需要實(shí)例化,分配內(nèi)存,但靜態(tài)方法不用,但是這種速度上差異可以忽略不計(jì) 

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

  1.一個(gè)方法和他所在類的實(shí)例對(duì)象無關(guān),不依賴new出來的實(shí)例,那么它就應(yīng)該是靜態(tài)的

  2.不需要面向?qū)ο蟮睦砟畹臅r(shí)候用靜態(tài);比如動(dòng)物-> RUN ,因?yàn)槟憧赡軙?huì)擴(kuò)展出貓 run、狗 run,這時(shí)候就需要用非靜態(tài)的方法

關(guān)于線程安全:

  靜態(tài)方法只有一個(gè)實(shí)例,當(dāng)有靜態(tài)變量的時(shí)候,對(duì)于高并發(fā)的時(shí)候,并發(fā)的所有執(zhí)行都走那個(gè)方法,靜態(tài)變量的值就會(huì)發(fā)生改變,導(dǎo)致出現(xiàn)問題;

  當(dāng)然并發(fā)不安全跟方法本身沒關(guān)系,跟共享的那個(gè)資源有關(guān)系比如某個(gè)變量,每個(gè)線程都對(duì)其進(jìn)行操作,都能改變其值,多線程(并發(fā)其實(shí)就是多線程),操作它,其值混亂,就有問題了 

為什么要用非靜態(tài)方法

  這是本人寫的一個(gè)方法,當(dāng)初直接寫成static方法,沒有別人的原因,是因?yàn)椴幌雽?shí)例化可以少些一行代碼,并沒有想過靜態(tài)和非靜態(tài)的區(qū)別= =!~~;當(dāng)然寫成非static的方法也是可以的;

  原因

  1.因?yàn)榉椒ㄐ枰貜?fù)的調(diào)用,每次都去new一次會(huì)造成內(nèi)存的開銷,使用靜態(tài)的方法就會(huì)一直在內(nèi)存中,不需要重新new一塊空間初始化數(shù)據(jù);

  2.不需要去做OO;

  3.方法不依賴new出來的內(nèi)容;

  比較經(jīng)典的static方法,DBHelp里面基本上都是static方法

相關(guān)文章

  • C#和vb.net實(shí)現(xiàn)PDF 添加可視化和不可見數(shù)字簽名

    C#和vb.net實(shí)現(xiàn)PDF 添加可視化和不可見數(shù)字簽名

    本文通過C#程序代碼展示如何給PDF文檔添加可視化數(shù)字簽名和不可見數(shù)字簽名。文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • c#?理解csredis庫實(shí)現(xiàn)分布式鎖的詳細(xì)流程

    c#?理解csredis庫實(shí)現(xiàn)分布式鎖的詳細(xì)流程

    這篇文章主要介紹了c#?理解csredis實(shí)現(xiàn)分布式鎖,該庫本身已經(jīng)足夠完善,這里我畫蛇添足一下,為了方便自己的使用,本文通過實(shí)例代碼給大家詳細(xì)介紹,需要的朋友可以參考下
    2022-02-02
  • C#實(shí)現(xiàn)熱更新服務(wù)器程序的具體過程

    C#實(shí)現(xiàn)熱更新服務(wù)器程序的具體過程

    什么是熱更新?就是不停機(jī)更新,實(shí)時(shí)更新,這篇文章主要給大家介紹了關(guān)于C#實(shí)現(xiàn)熱更新服務(wù)器程序的具體過程,通過熱更新改善用戶體驗(yàn)(節(jié)省流量、時(shí)間、操作程度),需要的朋友可以參考下
    2021-07-07
  • C#+MO實(shí)現(xiàn)一個(gè)道路編輯軟件(剛開始)

    C#+MO實(shí)現(xiàn)一個(gè)道路編輯軟件(剛開始)

    C#+MO實(shí)現(xiàn)一個(gè)道路編輯軟件(剛開始)...
    2007-04-04
  • C#字體池技術(shù)實(shí)現(xiàn)代碼詳解

    C#字體池技術(shù)實(shí)現(xiàn)代碼詳解

    在本篇文章里小編給大家整理的是關(guān)于C#字體池技術(shù)實(shí)現(xiàn)代碼詳解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2019-11-11
  • WPF應(yīng)用啟動(dòng)慢的問題解決

    WPF應(yīng)用啟動(dòng)慢的問題解決

    今天碰到一個(gè)奇怪的現(xiàn)象,在某些機(jī)器上,進(jìn)行了系統(tǒng)還原后,WPF應(yīng)用打開較慢,約有35s。本文先記錄下該問題的解決方案,應(yīng)用啟動(dòng)性能官方文檔中有說明,還有搜到的其它方案沒來得及測(cè)試,如NGEN update
    2021-05-05
  • C#實(shí)現(xiàn)去除Strings中空格的方法

    C#實(shí)現(xiàn)去除Strings中空格的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)去除Strings中空格的方法,較為詳細(xì)的介紹了C#實(shí)現(xiàn)去除字符串首尾及中間空格的方法,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • C#異步使用需要注意的幾個(gè)問題

    C#異步使用需要注意的幾個(gè)問題

    C#使用異步方法中,使用一下關(guān)鍵詞的時(shí)候徐注意一些問題,比如async 方法需在其主體中具有 await 關(guān)鍵字,否則它們將永不暫停,接下來文字里將為大家舉例說明
    2021-09-09
  • C#中查找Dictionary中重復(fù)值的方法

    C#中查找Dictionary中重復(fù)值的方法

    這篇文章主要介紹了C#中查找Dictionary中重復(fù)值的方法,有需要的朋友可以參考一下
    2014-01-01
  • C#如何遍歷Dictionary

    C#如何遍歷Dictionary

    這篇文章主要為大家詳細(xì)介紹了C#遍歷Dictionary的方法,.NET中的Dictionary是鍵/值對(duì)的集合,使用起來比較方便,Dictionary也可以用KeyValuePair來迭代遍歷,感興趣的小伙伴們可以參考一下
    2016-04-04

最新評(píng)論

唐河县| 绥阳县| 香河县| 登封市| 班玛县| 大庆市| 乌审旗| 卓资县| 华容县| 台东县| 隆回县| 大方县| 沈阳市| 右玉县| 鱼台县| 沐川县| 驻马店市| 德庆县| 樟树市| 永济市| 恩平市| 姜堰市| 江津市| 潢川县| 开平市| 航空| 东丰县| 临猗县| 杭锦后旗| 连云港市| 江陵县| 斗六市| 卓资县| 武川县| 根河市| 江陵县| 龙里县| 嘉义市| 临高县| 老河口市| 奈曼旗|