閉包(Closure)是 C# 中的一種常用特性,允許方法內部引用其外部作用域的變數,進而提高程式的靈活性。然而,如果對閉包及變數捕捉(Capture)機制的理解不夠深入,可能會導致難以預期的錯誤。本文將介紹閉包與變數捕捉機制,並展示常見的陷阱及解決方案。
LINQ 的延遲執行與誤用風險
LINQ (Language Integrated Query) 的延遲執行機制 (Deferred Execution) 是其一大特色,讓查詢表達式在實際迭代前都不會執行。然而,如果不加注意,可能會因誤用而引發難以察覺的效能問題。本文將探討 LINQ 的延遲執行機制及其潛在的誤用風險,並提供實際程式碼範例說明。
從面試角度看 async
Posted on
|
In
C#
,
Language Spec
C# 的非同步程式設計是一個相當龐大且複雜的主題,甚至可以寫成整本專書。由於這也是面試中的常見題目,本文將嘗試從面試的角度整理非同步開發的要點。
各種字串插補的花式用法
Posted on
|
In
C#
,
Language Spec
字串插補是 C# 中常用的特性,但由於其多變的用法,導致在一般專案開發中沒能充分活用。這篇文章將統整各種使用情境並加以說明。
因為字串插補編譯後的結果多樣,根據不同版本的 C# 可能有不同結果,這篇提到的編譯後結果只適用於該情境。
可空的實質型別與其陷阱
Posted on
|
In
C#
,
Language Spec
Nullable<T>
是一個很方便的結構,但看似簡單的特性背後卻隱藏一些小陷阱,這些陷阱平時難以發現,但一旦遇到卻很容易讓人感到困惑,這篇文章將解析我遇過的相關情境。
深入 Init Only Setters
Posted on
|
In
C#
,
Language Spec
C# 提供許多編譯期的語法糖,但有些特性並不能完全歸類為語法糖,例如 Init Only Setters。本篇將快速介紹這個特性,並深入探討其運作原理。