我學習C#的Tips(1)
1.配置異常(Debug | Exceptions) 每個異常都可以配置。
2.健壯程式的處理
1) throw 對應的異常,不能夠慎用Catch(Exception e) 這種捕獲方法.
2) 異常轉義拋出,給使用者以合理的提示,不要拋出假異常.
3) 給出斷言Trace.Assert() 便於調試.
4) 在程式的最後一層,最好要處理一下異常,但是同時要記錄日誌Log,既要保證使用者沒有中斷操作,又要給自己的改進帶來依據(把異常的
日誌返回 到開發人員手中),如果有Reporting Server 更好.
5) 總之,不要輕易吃掉異常,只能增加開發的成本
3.類的修飾符
1) internal 項目內部用
2) public 預設情況
3) abstract 抽象的,不可以執行個體化,只能夠繼承,可有抽象成員
4) sealed 密封的,不能夠繼承,可以是公有的,也可以是內部的.
4.所有的介面成員都必須在支援該介面的類中執行,如果不想使用給定的介面成員,可以提供一個"空" 的執行方法(沒有函數代碼)
5.基類必須是繼承列表中的第一項.
6.GetHashCode 用以對象的散列函數,返回一個以壓縮形式標識的對象的值.
7.抽象類別和介面的區分:
1) 衍生類別只能夠繼承一個抽象類別,但可以使用任意多介面.
2)抽象類別可有抽象成員(但必須在衍生類別中執行,否則衍生類別本身必須是抽象的),介面成員必須在使用介面的類上執行-沒有代碼體介面成員
被定義為公有的,但是抽象類別的成員也可以是私人的.介面不包括靜態成員,欄位,變數.
3)抽象類別主要用於對象系列的基類,共用某些主要特性,例如共同的目的和結構,介面主要是供類使用,這些類在基礎水平上有所不同,
但仍然可以完成某些相同的任務.
8.成員複製簡單的對象可以通過System.Object 的MemberwiseClone() 方法完成,稱為淺度複製;因為他沒有考慮參考型別的成員.執行一個介面
IConeable 必須執行Clone()的方法,深度複製.
9.virtual 方法可以重寫,abstract 方法必須重寫,extern 方法定義放在其他地方.如果使用了override,也可以使用sealed指定在衍生類別中不能對這個
方法做出進一步修改.
10.隱藏基類的實現:空方法體;new public void DoSomething()
11.IEnumerable 實現了迴圈集合中項的功能.
ICollection 繼承IEnumerable 擷取集合中項的個數,並把項複製到一個數組中.
IList 繼承IEnumerable 和 ICollection 提供集合項目列表,並可以訪問這些項
IDictionray 繼承IEnumerable 和 ICollection類似於IList ,但提供了通過鍵碼值而不是索引訪問的項列表.
CollectionBase的介面有IList,ICollection,IEnumerable
Array
12.IDictionary 簡化的DictionaryBase,要遍曆內容其Item 為:
DictionaryEntry結構 更多察看:csharptoday.com
13.轉換運算子中關鍵字: implicit,explicit.
14.is 運算子不檢查兩個類型是否相同,但可以檢查類型是否相容,如果轉換成功,則返回true.
15.as 運算子轉換要麼成功,否則就返回null.
16.定製異常,處理自訂異常.
17.事件處理.
18.控制項屬性設定,例如:設定 [Conditional("DEBUG")] call some method assigned by the attribute only available if DEBUG is defined......
19.呼叫堆疊,斷點,命令視窗,輸出,自動視窗,局部變數,監視
Immediate 模式:調試和計算運算式
Command 模式:發布命令
計算運算式:在運算式前加上問號
Command -〉Immediate 輸入immed 不需要大於符號,否則輸入〉cmd 在Immediate 模式下臨時進入Command 模式
(執行單條命令)輸入〉alias,更多命令查看MSDN
局部變數,察看斷點前後三行的值
聲明:
1) 本TIPS 有理解不當的地方請大家指正,謝謝
2)轉載註明:http://cnblogs.com/winzheng
3)共同學習,共同積累