在C#中,靜態(tài)和非靜態(tài)的特征對于我們來說是再熟悉不過了,但是很少看到有一篇文章去好好地總結(jié)靜態(tài)和非靜態(tài)它們之間的不同,為了幫助大家更好地去理解靜態(tài)和非靜態(tài)特征, 所以將在這篇文章中幫大家全面總結(jié)下它們之間的不同,包括靜態(tài)類,靜態(tài)成員和靜態(tài)構(gòu)造函數(shù)。希望在大家鞏固基礎(chǔ)的時候可以拿出來好好復(fù)習(xí)下的。下面廢話不多了,直接進入我們今天的主題。
站在用戶的角度思考問題,與客戶深入溝通,找到贛縣網(wǎng)站設(shè)計與贛縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋贛縣地區(qū)。在自定義類或看.NET Framework類庫中都可以發(fā)現(xiàn),類中大部分都是具體實例特征(也就是沒有static標(biāo)識的),同時我們也能看到一些具有靜態(tài)特征的類或成員,例如我們經(jīng)常使用的Console類以及WriteLine方法就是靜態(tài)的。然而有些朋友會疑惑,為什么還要有靜態(tài)特征的呢?干脆都定義為實例的好了? 然后靜態(tài)特征的存在肯定有它存在的原因的,并不是我們就是要這么定義的,其實我一直認(rèn)為不管是什么都是源于生活的, 技術(shù)的實現(xiàn)也是一樣,比如我們開發(fā)程序,需要掌握技術(shù)外,其實更重要的是業(yè)務(wù)邏輯這塊的,如果你都不知道你開發(fā)的東西是怎樣的一個流程,即使你技術(shù)再牛做出來的東西都是反人類的東西(也就是指不符合用戶的用戶習(xí)慣和之前的一個業(yè)務(wù)需求),其實靜態(tài)特征的存在也是源于生活的,對于類好比就是我們現(xiàn)實生活中的人或事物,靜態(tài)特征和非靜態(tài)特征就好比生活中人或事物具有的特征, 我們詢問人的時候或者電視劇警察查案件的時候,都會聽到這樣一句話 "那個人有什么特征?"或 “嫌疑犯有什么特征?多高,年齡等” 其實高度、年齡、性別都是一個人的特征,所以這些在語言范疇就需要為其進行定義了,也就是我們定義的實例成員了,然而有些特征需要被所有對象實例所共有的,這些特征在語言范疇就定義為靜態(tài)特征,具體哪些特征可以定義為靜態(tài)特征呢? 其實這點一樣是源于生活的,所以我們在開發(fā)軟件的過程中,必不可少的一個流程就是需求分析了,只有在了解客戶需求的條件下才能進行之后的所有流程的, 例如一個班級有很多學(xué)生,每個學(xué)生是一個實體,在語言范疇就可以定義一個類,當(dāng)我們需要一個學(xué)生的時候就可以通過new 關(guān)鍵字創(chuàng)建一個出來(說到這里又讓我想到了惡搞泰囧的圖片——你有對象嗎?沒對象,你們程序員可以自己new一個啊?),然而我們創(chuàng)建出來的學(xué)生他們都有一些共有的特征,如同一個班級,學(xué)校等, 如果我們把班級、學(xué)校這樣的特征也定義為實例的話,那么我們不是每次創(chuàng)建對象實例的時候都為這些共有的特征分配一次內(nèi)存的,這樣不僅對內(nèi)存空間的浪費也是不滿足生活常識的,此時我們就可以把班級、學(xué)校這樣的特征定義為靜態(tài)特征,這樣所有實例都可以共享這兩個特征,并且不需要為每個對象實例分配內(nèi)存。
靜態(tài)類和非靜態(tài)類在C#中定義基本是一樣的,只是靜態(tài)類定義需要加上static修飾符而已。下面就直接總結(jié)下它們之間的區(qū)別:
靜態(tài)類只能包含靜態(tài)成員,否則會拋出編譯錯誤;然而非靜態(tài)類既可以包含非靜態(tài)成員也可以包含靜態(tài)成員
靜態(tài)類是不能實例化,之所以不能實例化,是因為靜態(tài)類會導(dǎo)致C#編譯器將該類同時標(biāo)記為abstract和sealed,并且編譯器不會在類型中生成一個實例的構(gòu)造函數(shù),從而導(dǎo)致靜態(tài)類不能實例化,具體原因可以見下圖;非靜態(tài)類可以,并且靜態(tài)成員的訪問只能通過類來進行訪問,因為靜態(tài)成員是屬于類的。
publicstaticclass StaticClass { privatestaticstring name; }
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。
新聞標(biāo)題:[C#基礎(chǔ)知識系列]全面解析C#中靜態(tài)與非靜態(tài)-創(chuàng)新互聯(lián)
瀏覽路徑:http://aaarwkj.com/article4/dppdoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、商城網(wǎng)站、動態(tài)網(wǎng)站、網(wǎng)站策劃、定制開發(fā)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容