選擇性引數(Optional Argument)是我愛用的C# 4.0新特性之一。 以傳入arg1, arg2引數的方法為例,若要讓arg2變成選擇性引數,過去得用多載(Overloading)實現,需要宣告成     void someMethod(stri...

昨天提到使用TaiwanLunisolarCalendar類別取得農曆日期,經網友風箏提醒,針對閏月要額外處理,於是一不做二不休整理成以下範例,順道把天干地支、生肖也一起加進去,還很假掰貼心地套用初一、初二等慣用語,程式碼分享給有需要的朋友參考。 using System; ...

昨天是四年才出現一次的2/29,也是未滿四歲系統的小關卡,結果在網路上跟生活周遭還真目賭不少程式跌倒~~ 最常見的狀況是該顯示民國年的地方出現101/2/28而非101/2/29,究其根源,多半是當初程式在撰寫時使用了DateTime.Today.AddYears(-1911).ToStrin...

昨天小談了固定欄寬資料檔解析程式的寫法,有人問到解析之餘要如何產生固定欄寬資料,並提了一些常見但有點機車的需求,例如: 針對數字欄位要能指定數值靠右左方補零(不知為什麼,某些"阿公"很愛用這種不補空白要補零的規格,每次要肉眼除錯時,十來個數字欄位夾雜零零相連到天邊,數位置數到...

跟傳統系統打交道時,XML、JSON等格式多半無用武之地,往往得透過"固定欄寬資料格式"進行資料交換。 在撰寫程式解析固定欄寬資料時,有幾點注意事項: 欄位寬度計算與中文編碼有關,實務上使用BIG5編碼還是大宗(阿公級系統很少能支援Unicode)。 BIG...

自從經前輩醍糊灌頂,學會"未分配數量 * (權重 / 尚未分配權重總和)"一次到位的無尾差分贓演算法後,開心地用了好幾年,後來更演化出LINQ進化版,從此在.NET中要分贓算錢如虎添翼! 幾年下來,未曾得接獲於此演算法的缺點回饋,於是它在我心中一直維持完美無瑕的女神形象! 直到最近一個極端例子讓我...

TextWriterTraceListener可將Trace機制輸出內容保存於檔案,便於存證、追蹤及偵錯,而Trace機制普遍應用於不少微軟產品或平台中,像是WCF Tracing,即可透過config設定將執行過程的追蹤資訊寫成檔案。 例如: 在WCF所在的web.config加入以下設定後...

IIS 7新增了虛擬帳戶(Virtual Accounts)的概念,即每個應用程式集區(App Pool)都有一個專屬的IIS APPPOOL\AppPoolName虛擬帳號,便於更精準地控管網站相關檔案及其他資源的存取權限。(關於虛擬帳號概念,可參考保哥的詳細介紹: 介紹 IIS 7.5 的應...