Record2: 从 record 的 with 表达式一路追到函数式编程的底层逻辑
准备 C# 面试时,我复习到 struct,顺手查了下 C# 10 的 record-struct。结果这一查,从 record 的 with 关键字一路追到了函数式编程,最后还搞明白了链式编程和函数式编程到底是什么关系。 ✦ record 和 with 表达式record 类型...
准备 C# 面试时,我复习到 struct,顺手查了下 C# 10 的 record-struct。结果这一查,从 record 的 with 关键字一路追到了函数式编程,最后还搞明白了链式编程和函数式编程到底是什么关系。 ✦ record 和 with 表达式record 类型...
✦ 为什么需要 Record在 record 登场之前,C# 开发者定义一个纯数据载体(比如 dto、配置项、DDD 值对象)时,面临一个尴尬的现实:reference-equality 是默认行为。 两个对象哪怕每个字段都一模一样,只要它们在堆上的地址不同,== 就返回 fal...
在数字领地的 UI 重构中,偶尔会遇到一些违背直觉的渲染表现。近期在处理一个基础的横向流式布局时,设置了 HorizontalAlignment="Right" 的图标并未如预期般停靠在容器右侧。 ✦ 现象复现 (Issue Repro)代码片段如下,意图在一个横向铺满的容器中,...
最近在使用 Avalonia 开发桌面应用时,为了让界面的交互更加灵动,我决定给一个核心功能的按钮加上渐变背景,以及悬停和按下时的微缩放动画。本来以为写几句 XAML 就能轻松搞定,没想到却接连踩了两个经典的“样式坑”。 今天就把这两个问题和底层逻辑记录下来,希望也能帮到正在构建...
写作说明:本文基于笔者在 Arturia.ShortLink 项目中接入 Serilog 的实际经历整理而成,部分结构和表达由 AI 辅助梳理。文中的判断、取舍和案例均来自实际调试过程,AI 只参与归纳、重组和文字润色。 ✦ 为什么桌面应用也需要认真做日志(Why Logging...