亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

  2.不需要面向?qū)ο蟮睦砟畹臅r候用靜態(tài);比如動物-> RUN ,因為你可能會擴展出貓 run、狗 run,這時候就需要用非靜態(tài)的方法

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

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

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

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

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

  原因

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

  2.不需要去做OO;

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

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

相關(guān)文章

  • C#淺拷貝和深拷貝實例解析

    C#淺拷貝和深拷貝實例解析

    這篇文章主要介紹了C#淺拷貝和深拷貝,是比較重要的概念,需要的朋友可以參考下
    2014-08-08
  • C# PadLeft、PadRight用法詳解

    C# PadLeft、PadRight用法詳解

    本文主要介紹了C# PadLeft、PadRight用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C#創(chuàng)建WCF服務(wù)控制臺應(yīng)用程序詳解

    C#創(chuàng)建WCF服務(wù)控制臺應(yīng)用程序詳解

    這篇文章主要為大家詳細介紹了C#創(chuàng)建WCF服務(wù)控制臺應(yīng)用程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C#中sqlDataRead 的三種方式遍歷讀取各個字段數(shù)值的方法

    C#中sqlDataRead 的三種方式遍歷讀取各個字段數(shù)值的方法

    這篇文章主要介紹了C#中 sqlDataRead 的三種方式遍歷讀取各個字段數(shù)值的方法,每種方法給大家介紹的都非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • C#簡單寫入xml文件的方法

    C#簡單寫入xml文件的方法

    這篇文章主要介紹了C#簡單寫入xml文件的方法,可實現(xiàn)C#針對XML文件簡單寫入的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C#自定義針對URL地址的處理類實例

    C#自定義針對URL地址的處理類實例

    這篇文章主要介紹了C#自定義針對URL地址的處理類,實例分析了C#解析URL地址實現(xiàn)URl參數(shù)加密解密及參數(shù)解析的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • C#以太網(wǎng)Sockets服務(wù)器設(shè)計實現(xiàn)

    C#以太網(wǎng)Sockets服務(wù)器設(shè)計實現(xiàn)

    本文主要介紹了C#以太網(wǎng)Sockets服務(wù)器設(shè)計實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C# WinForm實現(xiàn)自動更新程序的方法詳解

    C# WinForm實現(xiàn)自動更新程序的方法詳解

    這一篇就著重寫一下客戶端的代碼,客戶端主要實現(xiàn)的有:啟動后檢測本地的xml文件,然后發(fā)送到服務(wù)器獲取需要更新的文件以及版本列表,感興趣的小伙伴可以了解一下
    2022-10-10
  • C#中常用的正則表達式實例

    C#中常用的正則表達式實例

    正則表達式在程序設(shè)計中有著重要的位置,它經(jīng)常被用于處理字符串信息,下面是C#中常用的正則表達式實例,感興趣的朋友一起看看吧
    2016-10-10
  • C#實現(xiàn)關(guān)機功能

    C#實現(xiàn)關(guān)機功能

    這篇文章介紹了C#實現(xiàn)關(guān)機功能的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06

最新評論