Category: .net

前幾天的浮點數討論再次突顯 float、double 計算結果常存在微小誤差的特性,甚至會出現以下狀況: float a = 1/3,a 值顯示為 0.3333333,但 a 不等於 0.3333333f,a 也不等於 float.Parse(a.ToString())! 因此,在很需要精準度的場合...

讀者 Lina 問了一個有趣問題: 為什麼 float 計算 193.25*4/3*3 等於 773 跟手算結果相同(除 3 跟乘 3 可約分),用 decimal 計算 193.25*4/3*3 卻是 773.00000000000000000000000001 反而誤差更大? 依據黑大名言「...

前幾天分享的暫時性故障重試利器 - Polly,起源於我要處理一個 Deadlock 失敗自動重試的案例。案件本身有點玄疑,發生在一段 WHERE、JOIN 條件頗複雜的純查詢上(對! 只有 SELECT,不涉及 UPDATE、DELETE),在線上環境尖峰時間偶爾發生 "交易 (處理序識...

向「用生命追求 Coding 極致的男人」 - 91 哥請教幾個笨問題,談到遇到 Deadlock 失敗自動重試的機制,心裡想著這該寫成通用函式用起來才方便。91 ~~說:你為什麼不問問神奇海螺呢?~~建議我可以試試 Dapper Polly,讓我又認識了好物,收入軍火庫。(這感覺像無意聊到最近我的...

先前分享過透過 EWS 從 Exchange 收信接任務執行作業的定期排程,最近生出小副本。程式需從 Mail 取出 HTML 解析,因格式並不統一,解析邏輯需要有點彈性,以便從不同格式中取出所需資訊(類似爬網頁,考驗 HtmlAgilityPack 跟 Regular Expression 技巧)...

拿到一個有趣小題目,展開 C# 演算法自主練習。 有價證券有所謂的 Tick (檔位),意指申報價格的升降單位,通常會依價格高低區分級距,價格愈高,升降單位愈大。例如:未滿 10 元時升降單位為0.01元,10 元至未滿 50 元者為 0.05 元... 等。 某計算高低價格相差 Tick 數函式,...

.NET 5 已在 .NET Conf 2020 正式發佈,介紹 .NET 5 新功能前,先溫習 .NET Conf 2019 時提過的 .NET Roadmap,要記住以下幾點: 未來 .NET 將固定每年 11 月釋出新版,在 3.1 LTS 之後,雙數版號才是 LTS 版 (Long Ter...

去年整理過一篇研討會筆記 - 使用 .NET Async/Await 的常見錯誤,重新梳理 async /await 觀念,其中提到該用 .GetAwaiter().GetResult() 取代 .Result,以取得更明確的例外資訊,針對這點我還設計了實驗驗證 GetAwaiter().GetRe...

前幾天我玩了八皇后(喂),部落格跟 FB 都有朋友提到另一個演算法經典問題 - 背包問題。 簡單來說,背包問題是假設你有一個背包跟數件重量與價值不一的物品,在不超過背包負重上限的前題下,要決定該放入哪些物品使其總價值最大化。經典案例是小偷闖空門,面對一屋子值錢家當,我們要幫他想背包裝進哪些東西賺最多...

前幾天學到一個新名詞 - 八皇后問題,傳說是所有資工系學生都玩過的演算法經典案例。非本科系沒學過演算法,但自覺遞迴難不倒我,便想試試在不看範例的前題下自己能否用 C# 土砲出答案(沒在學生時代被爆雷的人才有的玩法 XD),列出傳說中的 92 組解? 天資不足,卡在座標換算公式很久,只能笨笨地在紙上畫...

歷史悠久的抓圖軟體 Snagit,功能之強大,說是擷圖軟體界的 Visual Studio 也當之無愧吧! 寫部落格、開發文件或回報 Bug 要抓畫面標重點,用 Snagit 幾乎是一氣喝成,手起刀落的感覺很讚。微軟 MVP 可申請加入 TechSmith Influencer Program,所以...

我想透過 Email 觸發某些批次作業,構想是定期跑程式從 Exchange 或 Office 365 收信,由主旨跟內容決定作業內容,執行完成再透過 Email 回報結果,這篇將示範使用 C# + Managed EWS API 的程式寫法。 開始前先提一下,用程式整合 Exchange 的方法不...

當年紅透半邊天的 XML,如今已成過氣老人,但地球的某些角落仍是由他把關,不小心碰上了,馬上能感受他板著臉孔列出一堆規矩,並不時嚴厲指正:這裡格式錯了、那邊不能這樣寫,當年不偷快的回憶全都回來了,其中最讓我暈頭轉向的莫過於 Namespace。 前天自己牙給,想土砲製作 ePub 電子書,一看規格,...

寫 .NET 存取 Excel 檔對我已是家常便飯,基本上只要有 ClosedXML 就能搞定。但偶爾會遇到資料存在 Word 表格,在江湖行走,這點雜耍技巧多少要懂。 研究了一下,比想像簡單。MS Docs 有篇簡單扼要的範例,原理是先用 MainDocumentPart.Document.Bod...

前些時候幫忙排除一個 DB Connection Pool 相關問題,學到點東西,所以有了這篇。 這篇文章將介紹如使用效能監視器觀測 SQL Connection Pool 使用狀況,並以實驗驗證其行為模式。 如果對 Connection Pool 還有點陌生,以下是一些參考資料: SQL Ser...