Effective C#:值型別與引用型別 (1) - 記憶體模型與參數傳遞陷阱
兩大資料型別分類 特性值型別引用型別 範例int、float、bool、struct (DateTime)string、array、class 定義的型別 記
VS2005 + Crystal Report 開發 Web 應用 (9) - 圖表、公式欄位與摘要資訊
練習 6:報表加入圖表、計算欄位與摘要 已擁有完整功能網站,顯示基於物件集合的 Crystal Report。本練習新增兩個圖表、一個計算欄位與摘要資訊。 步
Effective C#:區別四個判等函數 (1) - ReferenceEquals 與靜態 Equals 基礎
.NET 四大判等函數概覽 Object.ReferenceEquals - 靜態,參考相等 Object.Equals - 靜態,邏輯相等 型別的 Equa
Effective C#:區別四個判等函數 (2) - Equals 實作細節與等價關係
等價關係三要素 自反性:a == a 對稱性:a == b ⇒ b == a 傳遞性:a == b 且 b == c ⇒ a == c 實作型別判等函數必須
Effective C#:區別四個判等函數 (3) - 值型別與運算符重載最佳實踐
子類別轉型破壞等價關係 子類別物件可透過 as 轉為基類別,導致不同型別物件進行判等,違反等價關係(自反性、對稱性、傳遞性)。 值型別判等建議:重載 == 運
Effective C#:使用成員初始化語句 (1) - 物件建構流程與最佳實踐
物件建構流程 類型第一個實例建構步驟: 配置靜態成員記憶體(初始為 0) 執行靜態成員初始化語句 執行基類靜態建構函式 執行本類型靜態建構函式 配置執行個體成
Effective C#:減少裝箱與拆箱 (3) - 介面技巧與值型別修正
問題:值型別在集合中無法直接修改 將值型別放入 ArrayList 時,會發生裝箱。嘗試修改屬性: ((Person)arrPersons[0]).Name =
Effective C# 原則 50:了解 ECMA 標準 - 語言與執行環境的官方規範
ECMA 標準:C# 與 CLR 的官方說明 ECMA-334:定義 C# 1.0 語言標準 ECMA-335:定義 CLI(公共語言基礎結構)與 CLR 標
Effective C# 原則 49:為 C# 2.0 做好準備 (1) - 四大新功能概覽與泛型動機
C# 2.0 四大核心新功能 Visual Studio 2005 帶來 C# 2.0,四大新功能全面提升開發效率: 泛型 - 參數化多型,建立型別安全且高效
Effective C# 原則 49:為 C# 2.0 做好準備 (2) - 泛型深度解析與效能優勢
泛型類別定義與型別安全 傳統集合儲存 System.Object 參考,存取時需強制轉型且不具型別安全。泛型讓您定義型別參數化的類別: public class
Effective C# 原則 49:為 C# 2.0 做好準備 (4) - 迭代器、部分類型與遷移策略
yield 關鍵字簡化迭代器實作 C# 2.0 引入 yield 關鍵字,大幅簡化迭代器撰寫。原本需 30 行程式碼實作 IEnumerator,現在僅需 6
Effective C# 原則 48:了解更多工具與資源 (1) - 單元測試與程式碼分析工具
必備工具:NUnit 單元測試框架 NUnit (www.nunit.org) 是每位 C# 開發者工具箱的首選工具。它是自動化單元測試框架,功能類似 Java
Effective C# 原則 48:了解更多工具與資源 (2) - 進階工具與社群資源
ILDasm:IL 反組譯工具 ILDasm 是隨 .NET Framework SDK 發行的 IL 反組譯器。雖然鮮少有人直接撰寫 IL 程式碼,但了解不同
Effective C# 原則 47:選擇安全的程式碼 (2) - 隔離儲存與安全性最佳實踐
隔離儲存的讀取操作 隔離儲存的讀取操作與一般檔案 I/O 相似,以下範例示範如何讀取儲存的資料: 0) { StreamReader reader =
Effective C# 原則 46:最小化與非托管代碼互操作 (上)
互操作的三大開銷 資料封送:托管堆與非托管堆間複製資料。應使用「大塊」API 而非「細碎」API,減少跨邊界次數。若無法控制非托管介面,可建立輕量 C++ 包
Effective C# 原則 46:最小化與非托管代碼互操作 (中)
資料封送最佳化 優先使用 blittable 型別(Byte、SByte、Int16、UInt16、Int32、UInt32、Int64、UInt64、UIn
Effective C# 原則 46:最小化與非托管代碼互操作 (下)
P/Invoke 的侷限 僅能存取 C 風格 Win32 函式,手寫介面宣告開銷大,非高產做法。 混合模式 C++ (/clr) 建立橋接層 以 /clr 編
Effective C# 原則 45:選擇強例外保證保護程式 (上)
例外中斷控制流程,引入危機 拋出例外會中斷預期行為,清理工作留給捕獲者。C# 社群可直接套用 C++ 社群成熟的例外安全實踐(Tom Cargill、Herb