這遠不 及使用多個catch語句有吸引力,這是很脆弱的代碼:如果只是常規的修改了名 字,它就被破壞了。如果你移動了造成錯誤的函數調用,放到了一個共享的工具 函
昨天買了一本《Effective C#》,看了幾個Item,雖然沒有當初讀 《Effective C++》時的那般震撼,但是也收獲不少。把其中的要點記錄於下,
創建二進制的組件時,同時也意味著你要使用遲後綁定和反射來查找你所須 要的具有特殊功能代碼。反射是一個很有力的工具,而且它讓你可以寫出可動態 配置的軟件。使用反
在上面的代碼中,進行是錯誤被屏避。如果 類型名字打錯了,這個方法就找不到。就沒有方法被調用。這還只是一 個簡單的例子。要創建一個靈活的InvokeMethod
當你創建了一個與反射相關的系統時,你應該為你自己的類型,方法,以及 屬性定義一些自己的特性,這樣可以讓它們更容易的被訪問。自定義的特性標示 了你想讓這些方法在
現在,讓我們添加另一個 新的特性來查找命令句柄。一個類型應該可以很簡單的實現好幾個命令句柄,所 以你可以定義新的特性,讓插件的作者可以把它添加到命令句柄上。這
現在 你將要創建一個命令句柄的示例。首先,你要用CommandHandler 特性標記類型 ,正如你所看到的,我們習慣性的在附加特性到項目上時,在名字上省略
CollectionBase 支持IList 接 口,所以你可以使用它來進行數據綁定。現在,你就發現了你的第一個問題:如 果地址為空,你的所有數據綁定行就失敗
為了在我們自己定義的集合上也實現這樣 的概念,我們很要做點工作。你要修改你的AddressRecord 結構來支持兩個新的 接口,IEditableObjec
“哪種集合是最好的?”答案是:“視情況而定。” 不同的集合有不同的性能,而且在不同的行為上有不同的優化。.Net框架支持很 多類似的集合:鏈表,數組,隊列,棧
每個內層的 一維數組可以有同不的大小。在需要不同大小的數組時可以使用鋸齒數據。使用 鋸齒數組的缺點是在列方面上的訪問是底效的。檢查一個每行上有三個列的鋸齒 數
齒數組裡的每一個新的維引用了另一個 foreach語句。然而,對於一個多維數組,每一個foreach語句都要產生代碼來檢 測數組每個維上的界線。foreach
對於數組類的概念而言,在C#的1.x發布版中,沒有一個集合類是強類型 的。它們都是存儲的對象引用。C#的范型將會在所有這些拓撲上包含新的版本。 這會是一個最好
用戶的輸入可能是多種多樣的:你必須在交互式的控件中盡可能的驗證輸入 。寫一些用戶輸入驗證可能很做作,而且也有出錯的可能,但還是很有必要的。 不能太相信用戶的輸
這和區號匹配,它充許(XXX)或者XXX的形式,其中 XXX是三個數字。任何在數字周圍的空白字符是充許的。最後兩個字符,-和?, 是許可但不要求一個橫線。剩下
有經驗的Windows程序員一定對寫代碼從一個控件上取值,以及把值存儲到控 件上很熟悉:public Form1 : Form{ private MyType
我已經創建了一個只讀的屬性,用於訪問核心的財政數據結構。這種構 造在你試圖支持對數據的讀寫操作時不能工作,FinancialResults結構是值類型 ,這就
我們要尋求一種避免直接寫代碼的應用程序配置和信息設置方法,我們已經 創建了多種不同的策略來存儲配置信息。而我們是要尋求一種正確的方法,我們 要不斷提高和改我們