故事派分析C#,逆變協(xié)變之協(xié)變

知識(shí)儲(chǔ)備:泛型接口颤专,里氏轉(zhuǎn)換







? ? ?微軟MSDN總是不說(shuō)人話纽哥,中國(guó)翻譯的編程指導(dǎo)書也都是故作高深,你看著這些名詞的翻譯:逆變栖秕,協(xié)變春塌,不變,都神馬玩意。筆者也是奔走在學(xué)習(xí)編程康莊大道上的小爬蟲程序員只壳,最看不慣中國(guó)技術(shù)文獻(xiàn)中間不裝逼會(huì)死的屬性俏拱,雖然自己學(xué)藝不精,但是斗膽寫這篇自己對(duì)C#知識(shí)點(diǎn)的理解吼句,大神路過(guò)莫要笑話彰触。如果文中理解有誤,也請(qǐng)各位不吝指正命辖。









? ? ? ?首先要知道什么是里氏轉(zhuǎn)換:簡(jiǎn)而言之况毅,老爹能干的活,換兒子上陣一樣不出岔子尔艇。子類可以替換掉父類尔许,而程序運(yùn)行不出問(wèn)題。這點(diǎn)也不難理解终娃,畢竟兒子繼承了老爹的全部本事味廊,還發(fā)揚(yáng)光大了,替父出力只是發(fā)揮了基本功而已棠耕。









? ? ? ?然后是接口:接口可以理解成為一種最低標(biāo)準(zhǔn)余佛。比如一篇從初中就總要學(xué)習(xí)寫的議論文,老師就教我們一篇文章要有論點(diǎn)窍荧,論據(jù)和論證辉巡,同時(shí)抓住時(shí)事要點(diǎn)。一篇文章一旦在文中把這三點(diǎn)蕊退,針對(duì)時(shí)事材料詳加闡釋郊楣,雖然它不一定是一篇好的議論文,但是也具有議論文大體的樣子了瓤荔。泛型接口就是對(duì)接口規(guī)則的進(jìn)一步擴(kuò)大化净蚤,接著上面的例子可以簡(jiǎn)單理解為:我們實(shí)現(xiàn)了接口“寫議論文技能”,于是我們會(huì)抓住論點(diǎn)論據(jù)論證一通胡侃输硝;然而在初中之前今瀑,就有個(gè)小學(xué)語(yǔ)文老師傳授給我們了一個(gè)泛型接口:“寫文章技能”,這個(gè)接口里我們學(xué)習(xí)到寫文章要分自然段点把,要有標(biāo)點(diǎn)符號(hào)橘荠,要有開頭,內(nèi)容和結(jié)尾總結(jié)愉粤。









好砾医,知識(shí)背景到這里,開始正題衣厘。









? ? ? ?時(shí)事評(píng)論員老爹有個(gè)時(shí)事評(píng)論員兒子如蚜,兩人都對(duì)社會(huì)現(xiàn)象有著犀利的認(rèn)識(shí)压恒,然而兩人文風(fēng)迥然不同,老爹喜歡根據(jù)書本理論推演出一套結(jié)論错邦,凡事總引經(jīng)據(jù)典探赫,講個(gè)言出有據(jù)。兒子喜歡站在人的角度撬呢,分析人和人的異同伦吠,得出的結(jié)論很接地氣,話糙理不糙魂拦。兒子雖說(shuō)是老爹的兒子毛仪,但是兩人終究不是一個(gè)流派的,師承不同芯勘,所以各過(guò)各的箱靴,不耽誤兒子孝敬老爹,但也不打過(guò)問(wèn)各自的事業(yè)荷愕。




? ? ? ?有一天社會(huì)出現(xiàn)了某富家子瘋狂駕車撞死了路邊大學(xué)生還瘋狂叫囂的時(shí)間衡怀,于是報(bào)社向評(píng)論員父子分別約稿,要兩位分析一下這個(gè)事件安疗。于是父子倆分別開始用各自熟悉的角度開始撰文抛杨。兒子手快,洋洋灑灑千字文章寫就荐类,老爹卻哀嘆人心不古怖现,急火攻心急出病來(lái),住進(jìn)了醫(yī)院掉冶。文章還要交付真竖,于是報(bào)社向兒子求助:你是你爹的兒子,他的文章你來(lái)替他寫完咋樣厌小??jī)鹤訑嗳痪芙^:我是他兒子不假,只是老爹那派引經(jīng)據(jù)典寫法我做不來(lái)啊战秋。









? ? ? ?這就是協(xié)變的前提:雖然老爹和兒子做的事情差不離璧亚,兒子在很多地方上出面確實(shí)也能代替老爹(根據(jù)里氏轉(zhuǎn)換),但是這件事還真心不行脂信,因?yàn)槔系鶎?shí)現(xiàn)的是“引經(jīng)據(jù)典評(píng)時(shí)事”接口癣蟋,而兒子實(shí)現(xiàn)的是“嬉笑怒罵評(píng)時(shí)事”接口,讓兒子露臉代替老爹領(lǐng)個(gè)獎(jiǎng)容易狰闪,讓兒子捉刀替老爹寫文章就有點(diǎn)勉為其難了疯搅。一句話:繼承的了血緣,有些本事還真遺傳不來(lái)埋泵♂E罚看似兒子是老爹血脈罪治,但是兩人的筆墨功夫都是兩人各自從各自老師那里學(xué)來(lái)的,沒(méi)遺傳到敖刚帷觉义!









? ? ? ?報(bào)社不這么認(rèn)為,對(duì)這個(gè)兒子說(shuō):你是你老爹的兒子浴井,耳濡目染幾十年晒骇,沒(méi)研究過(guò)總歸也看過(guò)嘛。給你一個(gè)錦囊磺浙,你回家拆開看過(guò)洪囤,一定會(huì)懂你老爹的思路,然后替我們吧這篇文章寫完撕氧。兒子回家拆開一看箍鼓,錦囊上書三個(gè)大字“O-U-T”,頓時(shí)觸電一般呵曹,明白報(bào)社同意其也加入了自己的寫作特點(diǎn)款咖,于是順利替老爹寫完了文章。









? ? ? ?文中老爹自然是父類奄喂,兒子是派生類铐殃,老爹的議論文是接受了父類的議論文泛型接口,具備議論文的文體和老爹的風(fēng)格跨新,兒子的議論文是接受了派生類的議論文泛型接口富腊,具備議論文的文體和兒子的風(fēng)格。報(bào)社就是我們這些編程者域帐,兒子是老爹的兒子赘被,寫篇文章咋就不行?不是里氏轉(zhuǎn)換說(shuō)好的老爹能干的事情換兒子就沒(méi)問(wèn)題嗎肖揣?不過(guò)這事真不怪里氏轉(zhuǎn)換民假,里氏轉(zhuǎn)換說(shuō)派生類替代父類沒(méi)問(wèn)題,但是寫文章這事可不是老爹遺傳給兒子的龙优,而是各自從老師那里學(xué)來(lái)的(實(shí)現(xiàn)了議論文接口)羊异,所以兒子也就不能代替老爹了。然而我們作為報(bào)社自然有掌控的權(quán)利彤断,加一個(gè)out關(guān)鍵字野舶,意思就是老爹的文章還是老爹署名,但是卻可以加入兒子的文風(fēng)宰衙,于是乎文章就在這種寬松的要求下寫成了平道。









? ? ? ?out就是協(xié)變的關(guān)鍵字,指的就是編譯器放棄了對(duì)接口嚴(yán)格的的類型匹配供炼,允許帶有派生關(guān)系的類型參數(shù)對(duì)接口產(chǎn)生影響一屋,從而產(chǎn)生接口本身類似所帶參數(shù)的繼承特性窘疮。這其實(shí)犧牲了編譯器自身的嚴(yán)謹(jǐn)性,然而很符合程序員所理解的里氏轉(zhuǎn)換表面特點(diǎn)陆淀,所以協(xié)變有了其存在價(jià)值考余。









最后,鄙視一下不接地氣的各種編程書轧苫!需要結(jié)合代碼理解的請(qǐng)自己查找MSDN或者若干協(xié)變事例楚堤,謝謝各位啦。歡迎各路高手一起來(lái)探討含懊,林楠愿向各位學(xué)習(xí)身冬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市岔乔,隨后出現(xiàn)的幾起案子酥筝,更是在濱河造成了極大的恐慌,老刑警劉巖雏门,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘿歌,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡茁影,警方通過(guò)查閱死者的電腦和手機(jī)宙帝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)募闲,“玉大人步脓,你說(shuō)我怎么就攤上這事『坡荩” “怎么了靴患?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)要出。 經(jīng)常有香客問(wèn)我鸳君,道長(zhǎng),這世上最難降的妖魔是什么厨幻? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任相嵌,我火速辦了婚禮,結(jié)果婚禮上况脆,老公的妹妹穿的比我還像新娘。我一直安慰自己批糟,他們只是感情好格了,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著徽鼎,像睡著了一般盛末。 火紅的嫁衣襯著肌膚如雪弹惦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天悄但,我揣著相機(jī)與錄音棠隐,去河邊找鬼。 笑死檐嚣,一個(gè)胖子當(dāng)著我的面吹牛助泽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嚎京,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嗡贺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鞍帝?” 一聲冷哼從身側(cè)響起诫睬,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帕涌,沒(méi)想到半個(gè)月后摄凡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚓曼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年亲澡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辟躏。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谷扣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捎琐,到底是詐尸還是另有隱情会涎,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布瑞凑,位于F島的核電站末秃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏籽御。R本人自食惡果不足惜练慕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望技掏。 院中可真熱鬧铃将,春花似錦、人聲如沸哑梳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鸠真。三九已至悯仙,卻和暖如春龄毡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锡垄。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工沦零, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人货岭。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓路操,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親茴她。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寻拂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

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