bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

C#中關于靜態與非靜態方法有什么區別-創新互聯

C#中關于靜態與非靜態方法有什么區別?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

為郊區等地區用戶提供了全套網頁設計制作服務,及郊區網站建設行業解決方案。主營業務為成都網站設計、成都網站制作、郊區網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!靜態方法和非靜態方法的區別:

  1.靜態方法不需要類實例化就可以調用,反之非靜態方法需要實例化后才能調用;

  2.靜態方法只能訪問靜態成員和方法,非靜態方法都可以訪問;

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

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

何時用靜態方法,何時用實例方法:

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

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

關于線程安全:

  靜態方法只有一個實例,當有靜態變量的時候,對于高并發的時候,并發的所有執行都走那個方法,靜態變量的值就會發生改變,導致出現問題;

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

為什么要用非靜態方法

C#中關于靜態與非靜態方法有什么區別

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

  原因

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

  2.不需要去做OO;

  3.方法不依賴new出來的內容;

  比較經典的static方法,DBHelp里面基本上都是static方法

看完上述內容,你們掌握C#中關于靜態與非靜態方法有什么區別的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!

分享名稱:C#中關于靜態與非靜態方法有什么區別-創新互聯
網頁網址:http://vcdvsql.cn/article0/pjioo.html

成都網站建設公司_創新互聯,為您提供標簽優化品牌網站設計移動網站建設定制網站品牌網站建設網站設計公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作