Max's Blog

Don't code fast, good code lasts.

Winform 控制項跨執行緒作業無效

在開發 Winform 時,碰到這種例外狀況:跨執行緒作業無效,原因是:當對 UI 控制項 更動的執行緒與 UI 控制項的執行緒不相同,這會導致對 UI 控制項進行不安全的調用,從而引發此例外錯......

C# 使用 CsvHelper 套件讀取 Csv 檔

紀錄 Nuget 套件 CsvHelper 幾個不同情況的 讀取 方式。 1. 當 csv 欄位與類別名稱與資料型態可對應 資料格式: Id Name Email Phone 0 ......

C# 陣列亂數排序(洗牌) - Fisher-Yates Shuffle

問題來源於之前在 interview 的 live demo 中,其中一個功能為 洗牌 ,原本預期這功能是沒問題的,仔細做到才發現有點卡住,然而又是在 live 的情況,趕緊寫出一個很醜的寫法,......

Redis 腳本

Redis 腳本是由 Lua Script 搭配 redis 的 call 指令來完成與 server 端的溝通邏輯,主要好處: 可由腳本達到一次處理多條指令的效果,減少指令來回往返時間(Ro......

Google Chrome 建立獨立環境

最近需回家處理工作的事,而我通常都是先登出自己的筆記軟體帳號,然後再登入公司筆記軟體帳號來查看我的工作項目,但這樣一來每次都要切來切去有點麻煩 這時如果有兩個獨立的 Chrome,一個自己平常使......

基礎 LuaScript 語法

最近接觸了 Redis 腳本有使用到 Lua,簡單紀錄下基礎語法。 常用資料型態 資料型態 備註 nil null boolean false 和 nil 為假,true 和非......
Lua

Docker 佈署 Redis

流程說明 首先準備好相關 Docker 工具,如:Docker CLI,若不習慣指令操作的朋友(就是我XD),可下載 Docker Desktop,比較方便觀察。 第一步:獲取 image 映像......

UnitTest

單元測試 單元測試(Unit Test)就是將模組(dll)裡的最小單位分成若干個測試案例來進行測試,最小單位為一個方法,透過將方法的每個行為都拆分成一個個測試情境,並依情境進行單元測試撰寫確保......

C# Boxing and Unboxing

前言 你是否曾疑惑: var num = 3345678; var result = $"我的電話: {num}"; 為何這一段程式碼可以把 int 型別直接插進字串呢? ......

C# Value and Reference Type

前言 在 C# 世界裡,資料型態分為 實值型別(Value Type) 與 參考型別(Reference Type),例如像 int、char、byte …等屬於實值型別,class、objec......