摘要: 本文记录从零手写一个 ORM 框架(Zhaoxi.DbProxy)的完整过程,系统梳理其中涉及的 C# 高级特性与设计思想。 零、框架全貌 在深入各个知识点之前,先从整体上认识这个框架长什么样、能做什么、怎么用。 0.1 项目结构 Zhaoxi.DbProxy.Project/ ├── Zhaoxi 阅读全文
posted @ 2026-03-23 14:56 龙猫•ᴥ• 阅读(1) 评论(0) 推荐(0)
摘要: 本文以"用户注册"这个业务场景为主线,逐步演示四种编程思想的演进过程,帮助理解每种思想解决了什么问题、又带来了什么新的局限。 一、POP —— 面向过程编程 核心思想 面向过程(Procedure-Oriented Programming)是最直接的编程方式:把要做的事情按步骤一行一行写下来,从上到 阅读全文
posted @ 2026-03-23 14:53 龙猫•ᴥ• 阅读(0) 评论(0) 推荐(0)
摘要: 基于 GOF 23 种设计模式,结合 War3 / 银行 / 请假审批等实际场景讲解。 分三大类:创建型、结构型、行为型。 一、创建型设计模式 1. 简单工厂(Simple Factory) 核心思想:把 new 对象的逻辑集中到一个工厂类,调用方只需传参,不用关心具体类型。 场景:War3 游戏选 阅读全文
posted @ 2026-03-23 14:50 龙猫•ᴥ• 阅读(3) 评论(0) 推荐(0)
摘要: 六大原则是写出高质量、可维护代码的基础,记住一句话:对修改关闭,对扩展开放是核心思想,其余五条都是在不同角度强化这个目标。 一、SRP — 单一职责原则 Single Responsibility Principle 核心思想 一个类(或方法)只负责一件事,只有一个引起它变化的原因。 通俗理解 厨师 阅读全文
posted @ 2026-03-23 14:49 龙猫•ᴥ• 阅读(3) 评论(0) 推荐(0)
摘要: 一、加密的分类 加密 ├── 不可逆加密(单向散列) │ └── MD5 └── 可逆加密 ├── 对称加密(加密/解密用同一个密钥) │ └── DES / AES └── 非对称加密(加密/解密用不同密钥) └── RSA / ECC 二、MD5 —— 不可逆加密(哈希散列) 核心特点 特点 说 阅读全文
posted @ 2026-03-23 13:18 龙猫•ᴥ• 阅读(2) 评论(0) 推荐(0)
摘要: 一、async/await 基础 1.1 什么是async/await 定义 C# 5.0 (.NET 4.5) 引入的语法糖 C# 7.1 开始,Main入口也可以使用 C# 8.0 支持异步流(await foreach)和异步释放(await using) 什么是语法糖 由编译器提供的便捷功能 阅读全文
posted @ 2026-03-23 11:47 龙猫•ᴥ• 阅读(3) 评论(0) 推荐(0)
摘要: 一、Parallel 并行编程 1.1 Parallel.Invoke 基本用法 // 一次执行多个委托 Parallel.Invoke( () => { DoWork1(); }, () => { DoWork2(); }, () => { DoWork3(); } ); 特点 可以传入多个委托 阅读全文
posted @ 2026-03-19 17:40 龙猫•ᴥ• 阅读(1) 评论(0) 推荐(0)
摘要: 一、核心概念理解 1.1 进程与线程 进程(Process) 计算机中的虚拟记录,描述应用程序运行时消耗的各种资源集合 包含:CPU + 内存 + 磁盘IO + 网络资源 类比:一个公司的整体运作 线程(Thread) 程序进程中执行具体动作的最小执行流 从点击按钮到网络通信,都是线程在执行 类比: 阅读全文
posted @ 2026-03-19 17:21 龙猫•ᴥ• 阅读(2) 评论(0) 推荐(0)
摘要: 一、多线程基础概念 多线程的三大特点: 异步执行:不阻塞主线程,多件事可以同时进行 效率高:充分利用 CPU 等计算机资源 无序性:多个线程的执行顺序不可预测,无法控制 ⚠️ 正因为无序性,多线程调试困难,通常只能通过写日志、输出结果、结合线程 ID 来分析问题。 // 获取当前线程 ID,用于区分 阅读全文
posted @ 2026-03-19 17:19 龙猫•ᴥ• 阅读(3) 评论(0) 推荐(0)
摘要: 一、数据结构概述 数据结构是底层数据的存储方式,分四大类: Set集合:纯粹的容器,无序存储,元素唯一 线性结构:一对一存储,如数组、链表、队列、栈 树形结构:一对多存储,如二叉树、表达式目录树、菜单结构 图状结构:多对多存储,如拓扑图、地图网络 二、线性结构 连续存储(数组类) Array 内存连 阅读全文
posted @ 2026-03-19 17:05 龙猫•ᴥ• 阅读(2) 评论(0) 推荐(0)
摘要: 一、本质与核心概念 表达式目录树是一种数据结构,以树形结构描述代码逻辑。它不是可执行代码,而是对代码结构的描述。 委托(Delegate):编译后直接生成 IL,可以直接执行 表达式目录树(Expression Tree):是一个树形数据对象,描述了计算关系,不能直接执行 Expression<Fu 阅读全文
posted @ 2026-03-19 17:02 龙猫•ᴥ• 阅读(5) 评论(0) 推荐(0)
摘要: 一、Lambda 表达式的演变 Lambda 表达式是委托的语法糖,本质上是匿名方法的简化写法,编译器最终会将其编译为委托实例。 .NET 1.0/1.1 — 命名方法委托 public delegate void NoReturnWithPara(int x, string y); NoRetur 阅读全文
posted @ 2026-03-19 16:59 龙猫•ᴥ• 阅读(1) 评论(0) 推荐(0)
摘要: 题 1:委托的本质是什么?请解释委托的底层实现原理。 出题意图 考察候选人对委托的深层理解,是否知道委托不仅仅是语法糖,而是有具体的底层实现。 解答思路 先说明委托的表面定义 深入到底层实现(类的本质) 说明继承关系和关键方法 参考答案 委托的本质是一个类(Class),继承自 System.Mul 阅读全文
posted @ 2026-03-19 14:55 龙猫•ᴥ• 阅读(8) 评论(0) 推荐(0)
摘要: 一、委托(Delegate)基础 1.1 什么是委托? 委托是一种引用类型,本质上是一个类,继承自 MulticastDelegate。它可以封装方法的引用,类似于 C/C++ 中的函数指针,但更加类型安全。 // 委托的定义 public delegate void NoReturnNoPara( 阅读全文
posted @ 2026-03-19 14:44 龙猫•ᴥ• 阅读(2) 评论(0) 推荐(0)
摘要: Q1:特性和注释有什么区别?特性的本质是什么? 出题意图: 考察对特性基础概念的理解,区分"会用"和"真懂"。 答: 注释在编译后不存在,只是给人看的文字说明。特性编译后以元数据形式存储在程序集中,运行时可以通过反射读取,能携带数据和逻辑,真正影响程序行为。 特性的本质是一个类,直接或间接继承自 S 阅读全文
posted @ 2026-03-19 14:07 龙猫•ᴥ• 阅读(1) 评论(0) 推荐(0)