[C#]Effective C# 條款十四:利用建構子鏈
在撰寫程式時,為了方便類別的使用,無法避免的有時我們會為類別加上不同的建構子,若其中有相同的初始動作,我們可以有以下三種作法: ...
在撰寫程式時,為了方便類別的使用,無法避免的有時我們會為類別加上不同的建構子,若其中有相同的初始動作,我們可以有以下三種作法: ...
在.NET 4.0 以前的例外處理機制,開發人員能透過Try…Catch將所有例外攔截,也許是用來做一致性的例外處理、也許是將例外吞掉。不論是哪種狀況我們都可以藉由例外處理機制攔截到所有的例外。 try { … }catch (Exception e) { … } ...
.NET 4.0 BCL 在遍尋檔案系統項目與檔案內容方面新增了一些新的方法,可先回傳集合的迭代器物件,待開始遍尋迭代器時才逐步載入對應的資料,可延遲載入動作的執行,避免處理大量資料時的效能耗費,可改進效能並保有迭代器簡單好用的優點。 ...
在以往我們使用Visual Studio,當輸入部份關鍵字Intellisense就會自動幫忙找到可能要輸入的Intellisence提示項目,並將最符合的Intellisence提示項目選取,此時若我們按下Tab或是Space,Visual Studio會自動幫我們用選取的字串帶入編輯區。 ...
.NET 4.0 BCL中新增了System.Device.Location命名空間,該命名空間內提供許多類別允許應用程式開發人員在Windows 7以後的作業系統使用單一 API 輕鬆存取裝置位置,開發人員不需去考量電腦中可以使用的位置提供者,也不需要為多個位置提供者排定彼此的優先權與中間的轉換,透過這個命名空間開發人員可以更專注於位置取得程式的撰寫,而不需花費心思考量各式各樣的位置提供者。 ...
身為程式開發人員不能避免的時常會需要因應客戶的需求下去為元件做些客制或擴充,有些應用程式為了讓程式便於處理這部分的需求會為應用程式加上擴充的機制,這樣的擴充機制能讓應用程式很輕鬆的達到大部分的擴充需求,也能將此機制開出讓有此需求的用戶能自行依自己處理擴充的動作。實作應用程式擴充元件機制在.NET有許多的作法,這邊將介紹如何透過反射(Reflection)技術來實作這樣的機制。 ...
SortedSet是.NET 4.0新加入的類別,位於System.Collections.Generic命名空間內,能夠依排序順序維護不重覆的物件集合。為一自我平衡紅黑樹的實作,可隨著項目的插入和刪除維護排序的順序,無法從特定位置訪問特定元素,使用上與現有的HashSet類別有點類似,一樣提供許多數學集合 (Set) 運算,像是交集、聯集、與差集等,但多了自動排序的功能,此外還具備有Min、Max的取得,與取裡面子集的功能。 ...
在例外處理時,有些情況下我們會需要將例外攔截後再次向外擴,在此時我們有兩種可選擇的寫法,一種是很多初學者會採用的透過throw ex來外擴例外,這種寫法須避免使用,因為採用此種寫法會改變的原來的呼叫堆疊,造成除錯上的困難。 try { // do something } catch (Exception ex) { // do something throw ex; } ...
DotNetZip為一輕便又易於使用的開放源碼壓縮函式庫,開發人員可透過DotNetZip函式庫來做壓縮資料、讀取壓縮資料、更新壓縮資料、與列出壓縮檔資料內容等功能,能支援壓縮檔密碼保護、Zip64格式、產生自解壓縮檔、與Unicode編碼。 ...
IObservable & IObserver為一種推入型通知的通用機制,為觀察者模式的實現,在.NET 4.0開始加入到BCL中 ,跟以往IEnumerable與IEnumerator這種拉出型通知的通用機制有所不同。 ...