C# 14 引入了 partial event,為事件模型補上長久以來缺少的那塊拼圖。事件終於像方法與類別一樣,可以被「部分定義」,讓開發者與工具(尤其是 Source Generator)得以共同塑造事件的行為與生命週期。
在這篇文章中,我將以弱事件(weak event)整合 為例,示範 partial event 如何與 Source Generator 協同運作,並展示這項語言新特性如何讓事件擴充從此變得自然而優雅。
UnsafeAccessorAttribute 指南 (2)
- 55
- 0
- UnsafeAccessor
- 2025-12-08
UnsafeAccessor 於 .NET 9 後有一些改善,本篇說明這些在 .NET 8 未竟全功的修正。
UnsafeAccessorAttribute 指南 (1)
- 121
- 0
- UnsafeAccessor
- 2025-12-07
UnsafeAccessorAttribute 是 .NET 8 加入的新特性,它提供了一種高效能的方式來存取型別的非公開成員。這個 Attribute 允許開發者在編譯時期定義存取器方法,並在執行時期以接近直接存取的效能來存取型別內部的非公開成員。
C# JSON 序列化新世代 -- Source Generator
- 190
- 0
- 2025-12-06
JSON (JavaScript Object Notation) 已經成為跨平台、跨語言的資料交換標準。不論我們開發任何的系統,JSON 幾乎無所不在。對於開發者而言,處理 JSON,不僅影響系統的反應速度,更直接牽動使用者體驗。
這篇文章將透過範例,探討在 JSON 的序列化與反序列化的過程中有無使用 Source Generator 的差異。
C#12 新功能 (4)
這一節要來談 Inline Array。
C#12 新功能 (3)
這篇來談兩個新功能,ref readonly parameters 與 alias any type
C#12 新功能 (2)
Collection Expressions,一個頗為方便的新功能,讓我們繼續看下去。
C#12 新功能 (1)
C#12 也出現一陣子了,這陣子來整理整理一些新功能的介紹
輔助自訂集合類別偵錯
- 319
- 0
- 2024-02-28
這篇文章要介紹的是對於自訂集合類別的偵錯輔助類別。
LINQ 練習題 -- 自訂排序
- 754
- 0
- 2023-03-03
LINQ 自訂排序的小練習
C# 11 新功能 -- Required members
Required members 也是個滿有意思,這是一個應用在屬性上的功能。
C# 11 新功能 -- static virtual members in interfaces and generic math
static virtual members in interfaces 與 generic math 這兩個新功能有相關,因為有了前者,才會使後者成為可能,而且是此次改版我個人最喜歡的新變化。
C# 11 新功能 -- List Patterns
模式比對 (patterns matching) 也是近幾版 C# 的發展重點方向之一,在 C# 11 的瘋狂程度比較趨緩,帶來一個比較容易理解的概念 List Patterns
C# 11 新功能 -- 字串
近幾次來的 C# 改版都在字串出了很多新花樣,C# 11 也來了這麼幾個,這篇簡單來看一下這幾個新功能的介紹。
WPF 多國語系 -- 使用 CSV 檔案 續集
- 389
- 0
- 2022-08-08
前篇 WPF 多國語系 -- 使用 CSV 檔案 之後,有個朋友提了一個進階的問題:「這樣的方式如何應用在 ComboBox 搭配 ObjectDataProvider + Enum 型別?」。我認真想了一下,還是有解的,只是手續多了點。
WPF 多國語系 -- 使用 CSV 檔案
- 570
- 0
WPF 多國語系有很多種作法,這一篇來介紹如何使用 CSV 檔案來作為多國語系來源
C# 10 新功能 -- Lambda
C# 10 此次的更新關於 Lambda expression 也帶來了一些新的功能,包含了委派型別推斷、顯式宣告回傳型別與 Attributes 的掛載。
C# 10 新功能 -- 命名空間
C# 10 這一次對於命名空間有一些新加入的功能,這一篇來說明一下用法。
C# 10 新功能 -- 結構
自 C# 7 以來,結構一直都有一些新的延伸,C# 10 也沒有缺席。
C# 10 新功能 -- 字串
C# 10 來了,首先要介紹的是關於字串的新改變。