Category: c#

【本系列是我的 C# in Depth 第四版讀書筆記,背景故事在這裡】 書的第二部分來到 C# 2-5,從現在的角度,這些已經老到不能再老,每個 C# 開發者幾乎都能信手拈來的基本技巧,不過閱讀過程仍有不少驚喜,學到一些過去沒注意的細節。 Generic 泛型 沒寫過 C# 1.0/1.1 的...

年初許下要把 C# in Depth 看完的宏願,隔週還上演電子書失而復得的插曲。然而,一年都過完 3/4 了,新年新希望又爛尾了嗎? 要說沒爛尾是騙人的,平日有一搭沒一搭,想到才翻幾頁,按這速度,拖到領老人年金還看不完。這樣不行呀,黑大! 動筆開始寫讀書筆記吧,希望起點催速效果。 C# in D...

再分享一個 .NET 小工具。 目的是要比對兩個 Schema 相同資料表的資料差異,其中一個是參考依據(這裡稱為 Source),一個是比較對象(稱為 Target),提供 Primary Key 進行匹配比對,找出有哪幾筆需要新增、哪幾筆要刪除,哪幾筆的哪幾個欄位需要更新? 由於比對程式不一定能...

寫了一個依據 URL 清單連網頁存快照的小程式,感覺挺實用,稍加修改可衍生有趣的批次作業或自動化應用。放上 Github,方便將來有類似需求 clone 下來當起手式。 程式本身沒什麼了不起,網頁轉圖片靠 Headless Chrome,C# 操作 Chrome 是透過 Puppeteer Shar...

很久沒有 Coding4Fun,想玩個有趣的題目 - 用 C# 無中生有產生聲音檔。 做了研究,.wav 檔用未壓縮的 byte[] 記錄聲音波形,只要依規範在檔案開頭填入聲道數、取樣頻率、解析度位元數... 等資訊,輕鬆就能在電腦上生出一段正弦波。(謎:要多無聊才會幹這種事?到底) 不過,大費周章...

專案有個 HTTP POST 呼叫特定 URL 的共用函式需求,參數採完全彈性,給什麼就組什麼,直接轉成 p1=...&p2=...&p3=... application/x-www-form-urlencode 格式送出。 若用 .NET 寫,最省事的做法是將參數轉成 NameVa...

開發 Windows 客戶端程式,若連線第三方網站或服務需要登入,沒多少使用者能忍受每用一次敲一次密碼,故記憶密碼是必備功能。 用明碼儲存密碼是天地不容的低級行為! 帳號系統存密碼應使用雜湊值,如此可做到不知密碼內容但能比對是否相符,有效降低密碼外洩風險;記憶密碼需還原使用,故不能用雜湊,但至少也要...

我想為放在網路圖床的照片建立預覽圖庫,需要輸入照片連結時,方便看縮圖挑照片得到連結網址。如果要自己寫程式來做,一般人直覺會建個資料表或 JSON 檔,關聯照片縮圖檔名與來源網址,再寫個照片瀏覽介面,點選照片縮圖時帶出原圖連結。 但,我有個大膽的想法 - 不要資料庫也不要搞 JSON,不用寫照片瀏覽介...

SSMS 有個方便功能,在 Table、View、Function、Stored Procedure 等物件用右鍵選單可以產生建立該物件的 SQL Script。 產生的資料表 Script 連 Description 註解都有,拿到新資料庫執行可建立一模一樣的資料表,十分方便: USE DB_N...

在網頁使用相對網址,瀏覽器會自動幫忙轉成絕對網址,如果是在 C# 程式寫程式推算,該怎麼寫? 一開始我又用傳統思維開始想演算法,先轉成 Uri 物件解析出 Host、PathAndQuery 再算位置弄半天,後來發現自己耍笨了,Uri 建構式已直接支援。 public Uri (Uri baseUr...

今天介紹一則讓你的 C# 程式好維護且不容易改壞的小技巧。 寫程式時難免會有需要字串常數的場合,若不要想太多,"常數A"、"常數B"是最直覺的寫法。 這樣寫沒什麼問題,程式通常也會跑得好好的。但遇到常數要修改,就是對細心度、視力與耐性的考驗了。 配改善這個問題...

工作上有一堆重複性很高的網頁表單欄位處理需求,我想做一個萬用框架搞定它,其中有個欄位映對問題。 C# 端的 ViewModel 包含巢狀階層結構,屬性與陣列交雜,映對到 HTML 端 INPUT、SELECT、TEXTAREA 時,我想為所有屬性唯一識別 ID。例如,ViewModel 的 A 屬性...

跟同事討論到 - 用 C# Stopwatch 取得效能數值,Stopwatch.ElapsedMilliseconds 只到毫秒(ms),如果需要更高的時間精確度(微秒μs,甚至奈秒ns),該怎麼做? 原以為要費番功夫,在 Stackoverlow 查到討論,答案意外地簡單。 準備測試程式如下,比...