C# 同一應用程式域中不同執行緒的參數傳遞四種方式
C# 同一應用程式域中不同執行緒的參數傳遞四種方式 在多執行緒程式設計中,如何在不同執行緒之間安全、高效地傳遞資料是核心課題。本文示範在同一 AppDomain
.NET C# 呼叫 WebService 取得客戶端 IP 所屬地區(同步模式)
.NET C# 呼叫 WebService 取得客戶端 IP 所屬地區(同步模式) 在開發網路應用程式時,常需要根據訪客的 IP 位址查詢其地理位置資訊(如國家
C# 排序演算法大比拚:複雜度、穩定性、實作與選型指南
八大經典排序複雜度與特性對照表 演算法平均時間最差時間最好時間輔助空間穩定性 直接插入排序O(n²)O(n²)O(n)O(1)✅ 穩定 冒泡排序O(n²
ASP.NET MVC 自訂 MembershipProvider 完整實作指南
為什麼要自訂 MembershipProvider? 內建 SqlMembershipProvider 綁定預設資料庫結構(aspnet_Users 等表),欄
《CLR via C#》第 1 部分讀書筆記:CLR 執行模型、組件、JIT、方法呼叫流程
核心觀念重構 1. CLR 是「跨語言執行環境」而非「跨語言平台」 任何語言只要實作面向 CLR 的編譯器(產出 IL + 中繼資料),即可在 CLR 上執行
log4net 進階(二):使用 AdoNetAppender 寫入自訂欄位到 MySQL 資料庫
前置準備 已完成 基本檔案日誌配置。 安裝 MySQL Connector/NET (MySql.Data),並建立日誌資料表: CREATE TABLE
log4net 入門(一):快速配置輸出日誌到檔案(RollingFileAppender)
1. 安裝 log4net NuGet 套件管理器: Install-Package log4net 2. 修改 Web.config / App.confi
實測驗證:C# 裝箱拆箱對效能的衝擊(Hashtable vs ArrayList vs List<T>)
測試背景 閱讀《你必須知道的 .NET (第二版)》第 5 章「品味型別」中關於裝箱拆箱的論述,決定以實測數據量化其效能差異。 測試環境 OS:Window
善用委託封裝 Try-Catch:消除重複異常處理程式碼
痛點 業務邏輯中到處充斥重複的 try { ... } catch (Exception ex) { Log(ex); return Failed; },導致核
C# 判斷目前程式是否以系統管理員身分執行
核心程式碼 using System.Security.Principal; public bool IsRunningAsAdministrator() {
《CLR via C#》第 4-5 章讀書筆記:型別轉換、值/參考型別、裝箱拆箱效能
核心知識點摘要 1. 型別轉換規則 向基類型轉換:隱式、安全(如 Employee → Object)。 向派生類型轉換:必須顯式轉型(Object → E
C# 與 SQL Server 字串補零/定長對齊完整指南
C# 實作方式 1. 數值型別直接格式化(最推薦) 適用於 int、long 等數值型別,以格式字串指定寬度與前導零。 int num = 5555; str
解決 Skin 控件 MessageBox 報錯「容量超出了最大容量」
錯誤現象 引入第三方皮膚控件(如 Sunisoft.IrisSkin)後,呼叫 MessageBox.Show() 拋出例外: System.ArgumentE
Quartz.NET 任務排程管理類封裝:動態增刪改查與啟動停止
設計目標 將 Quartz.NET 的排程器建立、任務與觸發器的增刪改、啟動停止封裝為泛型靜態類別 QuartzManager<T>(T 需實作 I
C# WinForms 表單間傳值六大經典方案完整解析
前言 WinForms 開發中,表單之間的資料傳遞是基礎也是高頻需求。本文整理六種主流方案,依適用情境分類說明,附完整程式碼片段。 方案一:靜態變數/屬性(最
.NET C# 呼叫 WebService 取得 IP 所在地區(同步呼叫)
功能說明 透過第三方 WebService(https://webservice.webxml.com.cn/)查詢 IP 位址對應的國家、城市、擁有者等資訊。
C# 操作 MongoDB 筆記(三):實體類別映射與 LINQ 查詢
定義對應實體類別 MongoDB C# 驅動程式支援將查詢結果直接反序列化為強型別物件。實體類別的屬性名稱、型別必須與集合中的欄位完全一致(含大小寫),否則會發
自製 C# INI 操作類:高效能、支援註解、簡易易用
為什麼要自己寫 INI 操作類? .NET Framework 提供的 WritePrivateProfileString 與 GetPrivateProfil