原创 Effective C# 重寫優於事件處理器

許多.net類庫中的類都提供了兩種不同的處理事件句柄的方法。既可以爲其添加事件,也可以重寫其基類的事件抽象方法。爲什麼要爲同一件事提供兩種不同的方法呢?這是爲了對應不同的情況。在實現派生類的時候,更好的選擇是重寫基類中的抽象方法。    

原创 Effective C# 使用標準配置機制

我們要尋求一種避免直接寫代碼的應用程序配置和信息設置方法,我們已經創建了多種不同的策略來存儲配置信息。而我們是要尋求一種正確的方法,我們要不斷提高和改我們的想法,關於哪裏是放置這些信息的好地方。INI文件?這是Windows3.1做的事,配

原创 Effective C# 創建大粒度的Web API

通信協議的開銷與麻煩就是對數據媒體的如何使用。在通信過程中可能要不同的使用媒體,例如電話,傳真,地址,和電子郵件。讓我們再回頭來看看上次的訂購情況,當你用電話訂購時,你要回答售貨員的一系列問題: “你可以把第一項填一下嗎?” “這一項的

原创 Effective C# 合理使用.NET運行時診斷

當有問題發生時,它們往往並不是在實驗的時候發生的,機器有輕鬆調試的工具。在很多實際情況中,你不好修正的問題總是發生在用戶的機器上,那裏沒有調試環境,也沒有好的方法計算出問題的情況。在實際情況中,有經驗的開發人員會創建一個方法,讓系統在運行時

原创 Effective C# 定製和支持數據綁定

有經驗的Windows程序員一定對寫代碼從一個控件上取值,以及把值存儲到控件上很熟悉:     public Form1 : Form { private MyType myDataValue; private TextBox textBo

原创 Effective C# 使用.NET驗證

用戶的輸入可能是多種多樣的:你必須在交互式的控件中儘可能的驗證輸入。寫一些用戶輸入驗證可能很做作,而且也有出錯的可能,但還是很有必要的。不能太相信用戶的輸入,用戶可能會輸入任何內容導致異常發生,進而進行SQL注入式攻擊。我們不希望任何類似這

原创 Effective C# 根據需要選用恰當的集合

如果要問 “哪種集合是最好的?”我的回答是:“視需要而定。”不同的集合有不同的功能特性,並且針對其行爲的不同進行了優化。.Net Framework支持許多相似的集合:列表、數組、隊列、棧等等。另外,C#支持多維數組,其性能特點不同於其它的

原创 Effective C#系列 文章目錄

很老的一個系列了,不過寫的很好,發現園子裏沒有,轉載過來,方便大家。   第一部分是語言使用的基礎,而這是使用語言的基本功,也是平常最不注意的,養成好的習慣,有利於後期水平提高。 這部分包括11個單元,分別如下: Item 1: Al

原创 媒體盤點春晚奧斯卡 各個獲獎人物

爲春晚“奧斯卡”開獎 最讓人感動的還是春晚的那道“招牌菜” 咳嗽着演小品,趙本山是真的憋不住了 昨晚8點,央視春晚準時拉開序幕。比起往年,這次春節晚會更具創新意識,無論是周杰倫和宋祖英的組合,還是蔡明、郭達的小品都融合了衆多流行元素,吸引了

原创 Effective C# 瞭解ECMA標準

ECMA標準是C#語言所有功能的官方說明。ECMA-334定義了C#語言1.0的標準,你可以從The C# Programming Language這本書上學習C#2.0的計劃(譯註:現在已經不是計劃了),這本書的作者是Anders Hej

原创 .Net修改頁面的keywords、description和title

首先在web.config裏配置一下(爲了維護的方便性):   <appSettings>         <add key="title" value="H2Blog"/>         <add key="keywords" val

原创 Effective C# 優先選擇安全代碼

.Net運行時已經設計好了,一些懷有惡意的代碼不能滲透到遠程計算機上並執行。目前一些分部式系統依懶於從遠程機器上下載和執行代碼。如果你可以通過Internet或者以太網來發布你的軟件,或者直接從web上運行,但你須要明白CRL在你的程序集中

原创 Effective C# 利用特性簡化反射

當你創建了一個與反射相關的系統時,你應該爲你自己的類型,方法,以及屬性定義一些自己的特性,這樣可以讓它們更容易的被訪問。自定義的特性標示了你想讓這些方法在運行時如何被使用。特性可以測試一些目標對象上的屬性。測試這些屬性可以最小化因爲反射時可

原创 Effective C# 避免過度使用反射

創建二進制的組件時,同時也意味着你要使用遲後綁定和反射來查找你所須要的具有特殊功能代碼。反射是一個很有力的工具,而且它讓你可以寫出可動態配置的軟件。使用反射,一個應用程序可以通過添加新的組件來更新功能,而這些組件是在軟件最開始發佈時沒有的。

原创 Effective C# 爲應用程序創建特定的異常類

異常是一種的報告錯誤的機制,它可以在遠離錯誤發生的地方進行處理錯誤。所有關於錯誤發生的的信息必須包含在異常對象中。在錯誤發生的過程中,你可能想把底層的錯誤轉化成詳細的應用程序錯誤,而且不丟失關於錯誤的任何信息。你須要仔細考慮關於如何在C#應