通過使用依賴注入架構和反轉控制,你可以產生和裝配自訂類執行個體和能包含依賴對象的執行個體和配置。在接下來的段落中說明了使用Unity的方法。 The Types of Objects Unity Can Create —Unity可以建立對象你可以使用Unity容器來建立任何擁有公用建構函式(public
今天我發現私人構函數的類不僅不能在外部被執行個體化,而且也不能被繼承。因為子類在構造的時候先執行子類的建構函式,然後再執行基類的建構函式。但基類的建構函式是私人的話,就無法訪問。所以編譯的時候就會出錯。例如: public class BaseClass { private BaseClass() { } } public class NewClass : BaseClass { public
討論一下自訂類作為集合類鍵的必要條件。SortedList的資料結構是鏈表,索引值是排序後儲存的。擷取某個索引值對應的值時,只需要比較操作。所以如果想將一個自訂類作為Key的話,必須要實現IComparable介面中的int CompareTo(object obj)方法。例如 SortedList<SelfClass, string> list = new SortedList<SelfClass, string>(3);
SilverLight4.0已經支援WCF SOAP 錯誤編程模型,他可已經WCF端未捕獲到的異常正確的傳遞到SilverLight用戶端,方便了調試和呈現。在SilverLight早期的版本,當服務拋出異常時,用戶端往往得到的都是HTTP 500錯誤,服務端的詳細錯誤資訊並沒有返回給用戶端,用戶端也就無法訪問這個錯誤的資訊,更不能展示給終端使用者。用戶端得到的僅僅是Not Found的錯誤,錯誤資訊如下: 本文參考了MSDN的文章Creating and Handling Faults in
SilverLight的設計時,是會執行所載入的控制項的建構函式和Load函數,如果這些建構函式和Load函數中包含了一些設計時無法正常執行的代碼,比如訪問了資料庫資源,進行了存取權限驗證等等,設計時預覽視窗就會出現錯誤,不能正常顯示。下面的Code可以判斷當前程式碼片段執行時,是否處於設計時狀態,希望你能避免某些程式碼片段在設計時被執行,讓預覽視窗正常顯示。 // Check for design mode. if
做一個類似於TextBox一樣在設計時只能調整位置和寬度,不能修改它的高度,請使用下面的方法:假定我的控制項名稱為PopupCheckedList,高度只能是21像素。首先,需要與控制項對應的一個Desinger類,名為<PopupCheckedListDesigner>,代碼如下: public class PopupCheckedListDesigner : System.Windows.Forms.Design.ControlDesigner {
數組是類對象,儲存空間在堆上,是一種參考型別。那麼如何在棧上建立和訪問數組元素以獲得更高的效率那?下面是CLR Via C#中給出的一段範例程式碼,分別使用stackalloc 和建立結構類型執行個體來實現在棧上使用數組。 public static class Program { public static void Main() { StackallocDemo(); InlineArrayDemo(); } private
HashTable 索引器定義: // Summary: // Gets or sets the value associated with the specified key. // // Parameters: // key: // The key whose value to get or set. // // Returns: //
最近WP7吵得沸沸揚揚,我跟著也瞭解了一下,看了AppHub(http://create.msdn.com/en-US/?ocid=ban-f-cn-wp7--MSDN)中有關WinPhone7的介紹和學習資料。然後再搜尋有沒有大師寫的WinPhone7的開發指南哪?答案是有的,MS Press已經出版了Charles Petzold的名為《Programming Windows Phone 7》一書,封面雷同,呵呵。 下面把他的目錄貼出來,大家看一看:Contents at a Glance
Threads are a popular way of getting on with multiple things at once. They are not the only way of doing this, but they are particuarly attractive if you are faced with an API that is resolutely synchronous. A common question that emerges once you