0. 前言 為什么我們需要異常處理?什么是異常? 在漢語中,異常指非正常的;不同於平常的。翻譯到程序中,就是指會導致程序無法按照既定邏輯運行的意外,或者說是錯誤。可能會有小伙伴好奇了,我們的程序不是正常的嗎,為什么還會出錯呢? 我來舉幾個例子: 程序需要訪問一個文件,但這個文件不存在 ...
摘 要 人非聖賢,孰能無過。代碼是人寫的,當然也不可能不出錯,我們只能期望代碼更健壯,不可能追求完美,能做更多的就是如何從錯誤中恢復或尋找替代方案。CLR提供了異常處理機制,它不僅能讓代碼在出錯的時候更優雅地讓人們去解決異常,也能在必要的時候拋出異常。那么,如何更規范的定義和使用異常消息呢 拋出異常會不會影響性能呢 第一節 CLR中的異常 在早期的Win API設計中是通過返回true fals ...
2012-08-09 15:15 9 14882 推薦指數:
0. 前言 為什么我們需要異常處理?什么是異常? 在漢語中,異常指非正常的;不同於平常的。翻譯到程序中,就是指會導致程序無法按照既定邏輯運行的意外,或者說是錯誤。可能會有小伙伴好奇了,我們的程序不是正常的嗎,為什么還會出錯呢? 我來舉幾個例子: 程序需要訪問一個文件,但這個文件不存在 ...
摘 要 幾乎所有的資料都告訴我們,在頻繁進行字符串拼接操作的時候推薦使用StringBuilder,因為它提供更優秀的性能,不辭勞苦的我們也寫示例驗證過,確實如傳說的那樣! ...
摘 要 字符串是保存文本的System.String類型對象。它跟值類型(如:Int32、Int64等)有着相似的使用方法及表達目的,但它並不是值類型。由於在編程中會大量使用字符串,所以CLR為了提高性能及開發方便,對它進行了特殊處理。這一章,我們來介紹一下字符串的駐留 ...
摘 要 這個系列,將從山腳寫到山腰。由於鄙人知識匱乏,不敢奢望攀登山頂。 C# Target Runtime: v4.0.30319 系列索引 C#基礎知識梳理系列一:CLR及程序集部署 C#基礎知識梳理系列二:C# ...
摘 要 2012年7月21日,北京因暴雨災害導致勞命傷財。這個事情過去后,“自然災害預警”系統又一次被人們提起,它就是將自然現象前交發送通知給人們,這個過程能很好地解釋C#語言中的事件。在上一節《C#基礎知識梳理系列五:委托與事件(上)》我們主要討論了與委托相關的知識 ...
摘 要 反射,一個很有用且有意思的特性。當動態創建某個類型的實例或是調用方法或是訪問對象成員時通常會用到它,它是基於程序集及元數據而工作的,所以這一章我們來討論一下程序集、反射如何工作、如何動態創建類型及對象等相關知識,甚至可以動態創建程序集 ...
摘 要 設計類型的時候可以使用各種成員來描述該類型的信息,但有時候我們可能不太願意將一些附加信息放到類的內部,因為這樣,可能會給類型本身的信息描述帶來麻煩或誤解。我們想為類 ...
摘 要 委托與事件,這是一個老生常談的話題,很多人在講,很多人在用,但似乎它是一個永遠也說不完道不盡的東西。那么,到底什么是委托?什么是事件?委托鏈又是怎么回事?為什么使用 ...