<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      happyhippy

      這個世界的問題在于聰明人充滿疑惑,而傻子們堅信不疑。--羅素

      19:定義并實現(xiàn)接口優(yōu)于繼承類型。
         Prefer Defining and Implementing Interfaces to Inheritance。
         接口支持多重繼承,可以作用于值類型,而抽象類則不可以;抽象類中可以定義字段或方法,減輕創(chuàng)建子類(復(fù)用)的同時增加了子類與父類之間的耦合度;子類繼承接口表達的是“can-do”的關(guān)系,而子類繼承抽象類表達的是“is-a”的關(guān)系。

      20:明辨接口實現(xiàn)和虛方法重寫。
         Distinguish Between Implementing Interfaces and Overriding Virtual Functions。
         派生類不能重載基類(繼承接口)中的接口成員。

      21:使用委托表達回調(diào)
         Express Callbacks with Delegates
         返回值總是委托鏈上最后一個函數(shù)調(diào)用后返回的值;在委托鏈中拋出的任何異常都會終止委托鏈的繼續(xù)調(diào)用。

      22:使用事件定義對外接口。
         Define Outgoing Interfaces with Events。
         觀察者模式(Observer Pattern).

      23:避免返回內(nèi)部類對象的引用。
         Avoid Returning References to Internal Class Objects。
         四個策略來保護類的內(nèi)部數(shù)據(jù)結(jié)構(gòu)不被無意的修改:值類型,恒定類型,接口和包裝(模式)(e.g:返回DataView而不是DataSet)。

      24:聲明式編程優(yōu)于命令式編程.
         Prefer Declarative to Imperative Programming.
         在C#中,編程時使用特性(Attribute)就是申明式編程。使用特性來表明意圖時,可以減少在大量類似的手寫算法中出現(xiàn)邏輯錯誤的可能。

      25:盡可能將類型實現(xiàn)為可序列化的類型.
         Prefer Serializable Types.
         BinaryFormatter和SoapFormatter反序列化不會調(diào)用構(gòu)造函數(shù)和屬性訪問器(property Set/Get)(如果有的話),且能夠序列化非public成員;而XML反序列化會調(diào)用構(gòu)造函數(shù)和屬性訪問器(如果有的話),且只能夠序列化public屬性和字段。
         盡可能的使用默認(rèn)序列化特性([SerializableAttribute]),當(dāng)默認(rèn)特性不滿足時(e.g:在不同版本之間轉(zhuǎn)換)要實現(xiàn)ISerializable 接口。

      26:使用IComparable和IComparer接口實現(xiàn)排序關(guān)系。
         Implement Ordering Relations with IComparable and IComparer.
         IComparable是以提供方法來比較兩個特定類型的對象;IComparer可以為排序提供一個可選的排序依據(jù),這可以用于一些沒有給你提供排序依據(jù)的類型上,提供你自己的排序依據(jù)。
         e.g:http://support.microsoft.com/kb/320727/

      27:避免ICloneable接口.
         Avoid ICloneable.
         對于值類型,不應(yīng)該實現(xiàn)ICloneable接口,而應(yīng)該使用賦值語句。對于引用類型,只有在確實必要進行拷貝時,才在子類上實現(xiàn)對ICloneable的支持;基類在可能要對ICloneable進行支持時,應(yīng)該創(chuàng)建一個受保護的構(gòu)造函數(shù)。總之,我們應(yīng)該盡量避免使用ICloneable接口。

      28:避免強制類型轉(zhuǎn)換操作符。
         Avoid Conversion Operators.
         通過構(gòu)造函數(shù)來代替定義類型轉(zhuǎn)換操作。

      29:只有當(dāng)強制更新基類導(dǎo)致問題時才考慮使用new修飾符。
         Use the new Modifier Only When Base Class Updates Mandate It.
         在子類的方法上使用new修飾符,只是隱藏了從父類繼承而來的方法,而并不是重寫覆蓋,因此在子類的方法表中,存在兩個方法槽(slot)。當(dāng)子類的引用調(diào)用該方法時,是調(diào)用子類中定義的方法;而當(dāng)子類轉(zhuǎn)化為父類的引用時,是調(diào)用父類中定義的方法!(關(guān)于這一點,也可以參考下我以前寫的《
      Child類調(diào)用GrandFather類方法引發(fā)的思考》)。因此一般避免在方法上使用new修飾符。 

      posted on 2007-03-20 16:56  Silent Void  閱讀(466)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 亚洲熟妇少妇任你躁在线观看无码| 国产老熟女视频一区二区| 亚洲国产精品国自拍av| 岛国av在线播放观看| 甘泉县| 无码人妻人妻经典| 一日本道伊人久久综合影| 色伦专区97中文字幕| 天堂网在线观看| 久久精品日日躁夜夜躁| 亚洲高潮喷水无码AV电影 | 丰满人妻熟妇乱又精品视| 青草国产超碰人人添人人碱| 亚洲www永久成人网站| 国产综合精品一区二区三区| 99久久久国产精品免费无卡顿| 99久久国产宗和精品1上映| 免费人成视频网站在线观看18| 国产亚洲中文字幕久久网| 北京市| 不卡一区二区国产精品| 亚洲综合伊人久久大杳蕉| 精品国产成人三级在线观看| 亚洲精品国产熟女久久久| 中文www天堂| 日韩一区二区三区高清视频| 少妇上班人妻精品偷人| 手机看片日本在线观看视频| 亚洲国产精品久久无人区| 国产人妻人伦精品婷婷| 高潮喷水抽搐无码免费| 人妻中文字幕精品系列| 国产另类ts人妖一区二区| 少妇av一区二区三区无码| 九九热在线免费播放视频| 亚洲AV成人片在线观看 | 国产在线国偷精品产拍| 凤山县| 国产精品不卡区一区二| 国产亚洲精品久久久久久无亚洲| 国产精品久久久久久无毒不卡|