目錄
靜態方法與非靜態方法的區別:
何時用靜態方法,何時用實例方法:
關於線程安全:
為什麼要用非靜態方法
首頁 後端開發 C#.Net教程 C#中關於靜態與非靜態方法的差異介紹

C#中關於靜態與非靜態方法的差異介紹

Sep 06, 2017 pm 01:49 PM
.net 差別

靜態方法與非靜態方法的區別:

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

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

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

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

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

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

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

 

關於線程安全:

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

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

為什麼要用非靜態方法

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

  原因

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

  2.不需要去做OO;

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

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

以上是C#中關於靜態與非靜態方法的差異介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1654
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1225
24
PS導出PDF如何設置密碼保護 PS導出PDF如何設置密碼保護 Apr 06, 2025 pm 04:45 PM

在 Photoshop 中導出帶密碼保護的 PDF:打開圖像文件。點擊“文件”>“導出”>“導出為 PDF”。設置“安全性”選項,兩次輸入相同的密碼。點擊“導出”生成 PDF 文件。

H5和小程序與APP的區別 H5和小程序與APP的區別 Apr 06, 2025 am 10:42 AM

H5、小程序和APP的主要區別在於:技術架構:H5基於網頁技術,小程序和APP為獨立應用程序。體驗和功能:H5輕便易用,功能受限;小程序輕量級,交互性好;APP功能強大,體驗流暢。兼容性:H5跨平台兼容,小程序和APP受平台限制。開發成本:H5開發成本低,小程序中等,APP最高。適用場景:H5適合信息展示,小程序適合輕量化應用,APP適合複雜功能應用。

centos和ubuntu的區別 centos和ubuntu的區別 Apr 14, 2025 pm 09:09 PM

CentOS 和 Ubuntu 的關鍵差異在於:起源(CentOS 源自 Red Hat,面向企業;Ubuntu 源自 Debian,面向個人)、包管理(CentOS 使用 yum,注重穩定;Ubuntu 使用 apt,更新頻率高)、支持週期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社區支持(CentOS 側重穩定,Ubuntu 提供廣泛教程和文檔)、用途(CentOS 偏向服務器,Ubuntu 適用於服務器和桌面),其他差異包括安裝精簡度(CentOS 精

不同數據庫系統添加列的語法有什麼區別 不同數據庫系統添加列的語法有什麼區別 Apr 09, 2025 pm 02:15 PM

不同數據庫系統添加列的語法為:mysql:alter table table_name add column_name data_type; postgresql:alter table table_name添加column_name data_type; oracle; oracle:alter table table_name add(column_name data_type)

H5和小程序的推廣方式有何不同 H5和小程序的推廣方式有何不同 Apr 06, 2025 am 11:03 AM

H5與小程序的推廣方式存在差異:平台依賴性:H5依賴瀏覽器,小程序依賴特定平台(如微信)。用戶體驗:H5體驗較差,小程序提供類似原生應用的流暢體驗。傳播方式:H5通過鏈接傳播,小程序通過平台分享或搜索。 H5推廣方式:社交分享、郵件營銷、QR碼、SEO、付費廣告。小程序推廣方式:平台推廣、社交分享、線下推廣、ASO、與其他平台合作。

PS羽化操作可以撤銷嗎? PS羽化操作可以撤銷嗎? Apr 06, 2025 pm 07:06 PM

PS羽化操作可隨時通過Ctrl Z撤銷,但需要在操作完成前進行撤銷。操作完成包含兩個層次:1. 羽化半徑數值確定後,在進行其他操作前可撤銷;2. 羽化本質為像素透明度漸變,撤銷記錄了整個羽化過程的狀態。儘管通常可撤銷,但歷史記錄面板容量不足、保存文件後、圖層合併或扁平化後可能導致撤銷失效。

laravel和thinkphp的區別 laravel和thinkphp的區別 Apr 18, 2025 pm 01:09 PM

Laravel 和 ThinkPHP 都是流行的 PHP 框架,在開發中各有優缺點。本文將深入比較這兩者,重點介紹它們的架構、特性和性能差異,以幫助開發者根據其特定項目需求做出明智的選擇。

C#.NET面試問題和答案:提高您的專業知識 C#.NET面試問題和答案:提高您的專業知識 Apr 07, 2025 am 12:01 AM

C#.NET面試問題和答案包括基礎知識、核心概念和高級用法。 1)基礎知識:C#是微軟開發的面向對象語言,主要用於.NET框架。 2)核心概念:委託和事件允許動態綁定方法,LINQ提供強大查詢功能。 3)高級用法:異步編程提高響應性,表達式樹用於動態代碼構建。

See all articles