C#学习问题记录(day11–day15)

📅 2026/8/3 13:43:08
C#学习问题记录(day11–day15)
这五天从集合一路学到多线程能明显感觉到难度在爬坡。前面几天都在内存里折腾数据容器后面突然跳到硬盘读写最后又跑到操作系统线程调度上抽象程度越来越高每往前学一节前一节的底子就变得更重要。day11 集合最直观的感受就是“动态数组”确实方便不用像普通数组那样先把长度定死。但问题也来得直接方法太多了Add、RemoveAt、Insert、IndexOf……脱离笔记写代码时常把参数顺序搞反。更烦的是ArrayList什么都能往里存取出来得强转转错了就是运行时异常自己写筛选逻辑的时候经常心里没底。day12 泛型算是救星List一写类型就锁死了不再担心装箱拆箱和类型转换。但我只能依葫芦画瓢地用现成的泛型集合让自己封装泛型类或泛型方法就完全无从下手。where约束那几个条件也是死记硬背不明白底层为什么要这么限制尖括号偶尔还会写成圆括号纯属手生。day13 字典键值对查找确实快但踩坑点很固定——老是忘记先判断ContainsKey就直接Add重复键一跑就崩。头疼的是实际场景里经常犹豫这数据到底该用List还是Dictionary判断依据不够清晰。day14 IO文件操作第一次接触持久化存储。绝对路径相对路径搞不清最常遇见的报错就是“找不到文件”。流打开后忘记Close文件被占着删不掉后来虽然知道用using但只会机械套。字节流和字符流到底用哪个处理中文偶尔出乱码异常捕获文件不存在、权限不足也总是事后才想起来补。day15 多线程难度直接跳了一档。宏观并发微观串行的概念全靠控制台交替打印来体会一开始不知道Join主线程嗖一下就结束了输出顺序完全不对题。线程启动、Sleep这些API记得零散共享变量的数据安全问题只停留在概念上lock加锁是照抄示例的换一个场景就不确定该锁哪里。每次运行结果顺序随机搞不清是正常并发还是自己逻辑有bug。贯穿始终的几个毛病每个模块API都很多跟着示例能跑自己从头写就卡壳模板依赖太强给了框架能改内部逻辑但让我自己搭骨架就没思路知识点环环相扣泛型和集合没吃透字典就跟着别扭IO释放资源那种“用完就收”的思维没建立多线程里的锁和资源回收就更难理解很多底层过程看不见比如集合扩容、磁盘读写、线程调度只能靠运行现象反推总感觉隔着一层。