欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點(diǎn)擊: 次

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

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

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

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

關(guān)于線程安全

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

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

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

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

  原因

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

  2.不需要去做OO;

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

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

上一篇:c#使用Socket發(fā)送HTTP/HTTPS請求的實(shí)現(xiàn)代碼

欄    目:C#教程

下一篇:C#委托與匿名委托詳解

本文標(biāo)題:淺析C#中靜態(tài)方法和非靜態(tài)方法的區(qū)別

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5501.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有