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

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

 更新時間: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)方法不需要類實例化就可以調用,反之非靜態(tài)方法需要實例化后才能調用;

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

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

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

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

  1.一個方法和他所在類的實例對象無關,不依賴new出來的實例,那么它就應該是靜態(tài)的

  2.不需要面向對象的理念的時候用靜態(tài);比如動物-> RUN ,因為你可能會擴展出貓 run、狗 run,這時候就需要用非靜態(tài)的方法

關于線程安全:

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

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

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

  這是本人寫的一個方法,當初直接寫成static方法,沒有別人的原因,是因為不想實例化可以少些一行代碼,并沒有想過靜態(tài)和非靜態(tài)的區(qū)別= =!~~;當然寫成非static的方法也是可以的;

  原因

  1.因為方法需要重復的調用,每次都去new一次會造成內(nèi)存的開銷,使用靜態(tài)的方法就會一直在內(nèi)存中,不需要重新new一塊空間初始化數(shù)據(jù);

  2.不需要去做OO;

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

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

相關文章

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

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

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

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

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

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

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

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

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

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

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

    WPF應用啟動慢的問題解決

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

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

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

    C#異步使用需要注意的幾個問題

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

    C#中查找Dictionary中重復值的方法

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

    C#如何遍歷Dictionary

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

最新評論

株洲市| 永康市| 井冈山市| 凤翔县| 库车县| 徐汇区| 新平| 连平县| 惠水县| 无锡市| 阳曲县| 双流县| 洪洞县| 乳山市| 灵台县| 海丰县| 厦门市| 农安县| 集安市| 奈曼旗| 济源市| 昆山市| 南木林县| 山东省| 鄄城县| 西乌珠穆沁旗| 柳州市| 中西区| 顺义区| 阿城市| 新化县| 固始县| 文山县| 资溪县| 新乡市| 三台县| 阿城市| 邹城市| 军事| 塔城市| 蓝山县|