文章
概念和陷阱,用可运行的证据讲清楚。凡是六行代码能证明的结论,绝不空口说。
文章正文目前是英文版(代码通用),中文版逐篇翻译中。
语言核心
- 为什么 C# 里 7 / 2 = 3?整数除法详解
两边都是 int → 小数被丢弃、向零截断。三种修法、负数规则,以及它什么时候恰恰是你想要的。
- var 与显式类型——各自什么时候对
var 是编译期推断,不是动态类型。哪里它帮忙,哪里它藏起关键信息。
- struct 与 class——值语义 vs 引用语义
赋值时 struct 拷贝、class 起别名。让这一切点透的改名实验,以及各自的适用场景。
- == 与 .Equals()——什么时候用哪个
对基元类型它们一致;在 null 处理和"相等"的定义上分道扬镳。大小写不敏感比较的正确姿势。
- string 与 StringBuilder——不可变性以及 += 陷阱
为什么 s.Replace() 什么都没改、为什么循环里 += 是 O(n²),以及"插值、Join、StringBuilder"三段论。