[C#基礎知識系列]全面解析C#中靜態(tài)與非靜態(tài)-創(chuàng)新互聯(lián)

一、引言

在C#中,靜態(tài)和非靜態(tài)的特征對于我們來說是再熟悉不過了,但是很少看到有一篇文章去好好地總結靜態(tài)和非靜態(tài)它們之間的不同,為了幫助大家更好地去理解靜態(tài)和非靜態(tài)特征, 所以將在這篇文章中幫大家全面總結下它們之間的不同,包括靜態(tài)類,靜態(tài)成員和靜態(tài)構造函數。希望在大家鞏固基礎的時候可以拿出來好好復習下的。下面廢話不多了,直接進入我們今天的主題。

站在用戶的角度思考問題,與客戶深入溝通,找到贛縣網站設計與贛縣網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網站制作、成都網站建設、外貿營銷網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣、空間域名、網站空間、企業(yè)郵箱。業(yè)務覆蓋贛縣地區(qū)。

二、為什么需要靜態(tài)特征

在自定義類或看.NET Framework類庫中都可以發(fā)現,類中大部分都是具體實例特征(也就是沒有static標識的),同時我們也能看到一些具有靜態(tài)特征的類或成員,例如我們經常使用的Console類以及WriteLine方法就是靜態(tài)的。然而有些朋友會疑惑,為什么還要有靜態(tài)特征的呢?干脆都定義為實例的好了? 然后靜態(tài)特征的存在肯定有它存在的原因的,并不是我們就是要這么定義的,其實我一直認為不管是什么都是源于生活的, 技術的實現也是一樣,比如我們開發(fā)程序,需要掌握技術外,其實更重要的是業(yè)務邏輯這塊的,如果你都不知道你開發(fā)的東西是怎樣的一個流程,即使你技術再牛做出來的東西都是反人類的東西(也就是指不符合用戶的用戶習慣和之前的一個業(yè)務需求),其實靜態(tài)特征的存在也是源于生活的,對于類好比就是我們現實生活中的人或事物,靜態(tài)特征和非靜態(tài)特征就好比生活中人或事物具有的特征, 我們詢問人的時候或者電視劇警察查案件的時候,都會聽到這樣一句話 "那個人有什么特征?"或 “嫌疑犯有什么特征?多高,年齡等” 其實高度、年齡、性別都是一個人的特征,所以這些在語言范疇就需要為其進行定義了,也就是我們定義的實例成員了,然而有些特征需要被所有對象實例所共有的,這些特征在語言范疇就定義為靜態(tài)特征,具體哪些特征可以定義為靜態(tài)特征呢? 其實這點一樣是源于生活的,所以我們在開發(fā)軟件的過程中,必不可少的一個流程就是需求分析了,只有在了解客戶需求的條件下才能進行之后的所有流程的, 例如一個班級有很多學生,每個學生是一個實體,在語言范疇就可以定義一個類,當我們需要一個學生的時候就可以通過new 關鍵字創(chuàng)建一個出來(說到這里又讓我想到了惡搞泰囧的圖片——你有對象嗎?沒對象,你們程序員可以自己new一個?。浚?然而我們創(chuàng)建出來的學生他們都有一些共有的特征,如同一個班級,學校等, 如果我們把班級、學校這樣的特征也定義為實例的話,那么我們不是每次創(chuàng)建對象實例的時候都為這些共有的特征分配一次內存的,這樣不僅對內存空間的浪費也是不滿足生活常識的,此時我們就可以把班級、學校這樣的特征定義為靜態(tài)特征,這樣所有實例都可以共享這兩個特征,并且不需要為每個對象實例分配內存。

三、比較靜態(tài)特征和非靜態(tài)特征

3.1 靜態(tài)類與非靜態(tài)類

  • 靜態(tài)類和非靜態(tài)類在C#中定義基本是一樣的,只是靜態(tài)類定義需要加上static修飾符而已。下面就直接總結下它們之間的區(qū)別:

  • 靜態(tài)類只能包含靜態(tài)成員,否則會拋出編譯錯誤;然而非靜態(tài)類既可以包含非靜態(tài)成員也可以包含靜態(tài)成員

  • 靜態(tài)類是不能實例化,之所以不能實例化,是因為靜態(tài)類會導致C#編譯器將該類同時標記為abstract和sealed,并且編譯器不會在類型中生成一個實例的構造函數,從而導致靜態(tài)類不能實例化,具體原因可以見下圖;非靜態(tài)類可以,并且靜態(tài)成員的訪問只能通過類來進行訪問,因為靜態(tài)成員是屬于類的。

publicstaticclass StaticClass    {        privatestaticstring name;    }

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現已開啟,新人活動云服務器買多久送多久。

新聞標題:[C#基礎知識系列]全面解析C#中靜態(tài)與非靜態(tài)-創(chuàng)新互聯(lián)
瀏覽路徑:http://muchs.cn/article4/dppdoe.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、商城網站、動態(tài)網站網站策劃、定制開發(fā)、外貿建站

廣告

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

微信小程序開發(fā)