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 的差異。
微軟文件庫有趣新功能
- 874
- 0
很久沒注意到微軟文件庫有甚麼變化了,而且這次的功能真不錯。
Linq 新功能 (6) CountBy、AggregateBy 與 Index
跳過 .NET 7 與 .NET 8,因為這兩版沒有新增方法【註1】,因此我們直接來到 .NET9
Linq 新功能 (5) DistinctBy、ExceptBy、IntersectBy 和 UnionBy
.NET 6 Linq 的新功能來到最終回合。
Linq 新功能 (4) 自訂預設值, Zip 與 Index struct, Range struct
.NET 6 在 Linq 上的新增功能真的很多,這一篇聊一些原有方法的多載新增。
Linq 新功能 (3) TryGetNonEnumeratedCount
這篇介紹一個有趣的新功能 – TryGetNonEnumeratedCount
Linq 新功能 (2) Chunk
這一篇介紹 .NET 6 新增的另一個功能,Chunk
Linq 新功能 (1) MaxBy與MinBy
趁著最近空閒,來整理一下從 .NET 6 之後 Linq 上的新功能。
WPF MenuItem 小傳 (3) -- ContextMenu 開啟前與關閉前的處理
- 90
- 0
- MenuItem 小傳
ContextMenu 本身只有 Opened (開啟後) 和 Closed (關閉後) 事件,那要如何處理 【開啟前】與【關閉前】?
MessagePack 筆記 (2)
- 134
- 0
- MessagePack
使用 MessagePack 處理 DateTime 型別時有一些細節需要注意,來聊一下是怎麼回事。
MessagePack 筆記 (1)
- 150
- 0
- MessagePack
最近在做一些 IPC 通訊的研究,需要一個輕薄短小的序列化方式,因為 BinaryFormatter 已經被微軟宣布淘汰,因此選了幾個方式,MessagePack 是其中一個候選人,就順帶寫寫筆記。
WPF MenuItem 小傳 (2) -- 資料繫結
- 174
- 0
- MenuItem 小傳
- 2025-01-14
有時候會需要採用比較靈活的功能選單,希望能靠著資料繫結來完成,比較普遍的做法就是採用階層式資料繫結,讓我們一步步來完成這個需求。
WPF MenuItem 小傳 (1) -- MenuItem.Role 屬性
- 223
- 0
- MenuItem 小傳
這個系列是為了記錄自訂 Menu 和 ContextMenu 的文章,因為總是有人嫌原來的 MenuItem 樣式不好看,又因為這件事情有一些小細節需要注意,所以寫下這系列文章免得自己忘記。
C#12 新功能 (4)
這一節要來談 Inline Array。
C#12 新功能 (3)
這篇來談兩個新功能,ref readonly parameters 與 alias any type
C#12 新功能 (2)
Collection Expressions,一個頗為方便的新功能,讓我們繼續看下去。
C#12 新功能 (1)
C#12 也出現一陣子了,這陣子來整理整理一些新功能的介紹