C#代碼復(fù)用

復(fù)用代碼煎谍,是一種節(jié)省重復(fù)代碼編譯的手法,不僅可以提高開發(fā)效率龙屉,也為代碼的維護(hù)提供了更加高效呐粘,實(shí)用的途徑。

在C#中,有很多方式可以復(fù)用我們已經(jīng)寫好的代碼事哭。

最常見的“引用”,在一段代碼最開始的地方寫上的using語句瓜富,將已經(jīng)寫好的類庫與正在編寫的代碼聯(lián)系在了一起鳍咱。但在這里,我并不希望從這個角度去理解復(fù)用与柑。作為開發(fā)人員谤辜,我們應(yīng)該看到的是,抽象帶來的代碼復(fù)用方面的價值价捧。

抽象丑念,最重要的意義是為事物歸類,最后的產(chǎn)品就是類结蟋。多個類形成類庫或者包脯倚,通過公共接口,被反復(fù)使用嵌屎。只要寫過代碼的人都清楚這種復(fù)用方式帶來的價值——一個新手推正,不需要自己做底層的工作,也可以讓編譯器完成想要完成的事情宝惰。

目光轉(zhuǎn)向單個項(xiàng)目植榕。做好了歸類,或許在你的設(shè)計圖紙上就已經(jīng)有了很直接尼夺,清晰有序的類圖尊残。接下來為行為做抽象,形成不同的接口淤堵。

如果想要完成某個簡單的動作(比如將某種類型轉(zhuǎn)換成另一種類型的顯式方法調(diào)用)寝衫,卻不知道什么方法可以完成,是不是需要去翻閱成噸的文檔粘勒,查看在哪個類型下面有對應(yīng)的方法呢竞端?答案是不一定。如果我們在設(shè)計最初庙睡,就把眾多類型中(或者理解成不同類中)完成相同任務(wù)的方法抽象成一個接口(或者說讓他們實(shí)現(xiàn)同一個接口)事富,那么工作變得簡單了。

我們只需要把包含這個接口的類庫引用進(jìn)來乘陪,然后直接調(diào)用實(shí)現(xiàn)接口的方法就行了统台。這是一種非常有序的代碼復(fù)用的辦法。

在C#中有一種非常實(shí)用的特性——泛型

泛型的出現(xiàn)提供了另一種代碼復(fù)用的方案:將對不同類型啡邑,相同的操作的被操作類型用泛型替代贱勃。泛型就像我們上學(xué)的時候經(jīng)常用到的X和Y,用于指代“某個數(shù)”,或者理解成某個“數(shù)學(xué)元素”贵扰。在C#當(dāng)中仇穗,泛型可以用來指代某個“編程元素”。

如果采用泛型戚绕,代碼將變得像數(shù)學(xué)公式一樣纹坐,具有強(qiáng)大的通用性。在擁有泛型的底層上開發(fā)舞丛,將變得隨心所欲耘子,甚至不需要考慮當(dāng)前是對什么樣的數(shù)據(jù)在做處理。結(jié)合合理的數(shù)據(jù)類型轉(zhuǎn)換球切,我們甚至可以完成對不同類型數(shù)據(jù)的統(tǒng)一處理(其實(shí)這只是我的一個想法谷誓,有待實(shí)施)。

總結(jié)一下吨凑,方法調(diào)用捍歪,類型引用是兩種非常機(jī)械,也很容易理解的代碼復(fù)用(就像從同桌那借來一塊橡皮一樣)鸵钝,接口和泛型是C#語言特性中為開發(fā)者節(jié)省開發(fā)成本的手段费封,但是需要底層做非常多的工作,好在IDE(集成開發(fā)環(huán)境)都幫我們搞定了弓摘。后面兩種需要長時間的練習(xí)才能掌握,這練習(xí)的結(jié)果锤窑,將是得到一種非常靈活的開發(fā)體驗(yàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哗讥,一起剝皮案震驚了整個濱河市魏宽,隨后出現(xiàn)的幾起案子队询,更是在濱河造成了極大的恐慌窄坦,老刑警劉巖彤侍,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件名斟,死亡現(xiàn)場離奇詭異闷袒,居然都是意外死亡冀值,警方通過查閱死者的電腦和手機(jī)滑蚯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門告材,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人古劲,你說我怎么就攤上這事创葡。” “怎么了绢慢?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵灿渴,是天一觀的道長洛波。 經(jīng)常有香客問我,道長骚露,這世上最難降的妖魔是什么蹬挤? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮棘幸,結(jié)果婚禮上焰扳,老公的妹妹穿的比我還像新娘。我一直安慰自己误续,他們只是感情好吨悍,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蹋嵌,像睡著了一般育瓜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栽烂,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天躏仇,我揣著相機(jī)與錄音,去河邊找鬼腺办。 笑死焰手,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼驯杜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了驻子?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤估灿,失蹤者是張志新(化名)和其女友劉穎崇呵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體馅袁,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡域慷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了汗销。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犹褒。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖弛针,靈堂內(nèi)的尸體忽然破棺而出叠骑,到底是詐尸還是另有隱情,我是刑警寧澤削茁,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布宙枷,位于F島的核電站掉房,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏慰丛。R本人自食惡果不足惜卓囚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诅病。 院中可真熱鬧哪亿,春花似錦、人聲如沸贤笆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芥永。三九已至篡殷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恤左,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工搀绣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留飞袋,地道東北人。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓链患,卻偏偏與公主長得像巧鸭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子麻捻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,848評論 25 707
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法纲仍,類相關(guān)的語法,內(nèi)部類的語法贸毕,繼承相關(guān)的語法郑叠,異常的語法,線程的語...
    子非魚_t_閱讀 31,602評論 18 399
  • 喜歡在一個安閑的時刻 去逛一條安閑的街 就這么沒有目的的晃悠 可能就會碰到一家安閑的店 進(jìn)去坐坐 帶著一顆安閑的心
    華枝春滿5339閱讀 272評論 2 8
  • 逢年過節(jié)明棍,年紀(jì)尚小的孩子們最高興的莫過于收壓歲錢了乡革。 記得那時每年的初一都起得很早,早早地?fù)Q上新衣服摊腋、早早地吃了餃...
    陳禹同Bruce閱讀 505評論 2 3
  • 也許有人會問:“什么是幸福沸版?”我想幸福可以是在一瞬間兴蒸,也可以是一輩子那么長视粮,一個釋懷的笑容可以是他人眼中明媚的幸福...
    憶往昔注孤生閱讀 155評論 0 0