7FOREST17
全部笔记

FIELD NOTES / KNOWLEDGE BASE

C# 核心知识点与面向对象编程指南

本笔记系统整理了 C# 编程语言的基础语法、常用数据结构、算法基础以及面向对象核心机制。涵盖从程序基本结构、变量、运算符、函数到类与对象、继承、多态及高级字符串处理等核心内容。 本文档系统整理了 C# 进阶与核心知识点,涵盖面向对象设计原则、数据结构与泛型、委托与事件、多线程、反射与特性、进阶排序算法及特殊语法等内容。

本笔记系统整理了 C# 编程语言的基础语法、常用数据结构、算法基础以及面向对象核心机制。涵盖从程序基本结构、变量、运算符、函数到类与对象、继承、多态及高级字符串处理等核心内容。 本文档系统整理了 C# 进阶与核心知识点,涵盖面向对象设计原则、数据结构与泛型、委托与事件、多线程、反射与特性、进阶排序算法及特殊语法等内容。

CHAPTER 01

C# 基础语法与控制台交互

介绍 C# 程序的基本文件结构、输入输出方法、代码折叠规范以及各类基础转义字符的使用。

  • 程序基础结构包含 using 命名空间、类和函数。
  • WriteLine 与 Write 用于打印信息,ReadLine 与 ReadKey 用于接收控制台输入和按键检测。
  • 使用 #region 和 #endregion 可以折叠代码以保持整洁。
  • 转义字符包括常用的换行 \n、制表符 \t 以及通过 @ 取消转义。

CHAPTER 02

变量、常量与类型转换

讲解变量的本质、声明规范、常量特点以及不同数据类型之间的隐式与显式转换规则。

  • float 类型声明时需加 F/f 后缀,decimal 需加 M/m 后缀。
  • 变量名采用小驼峰命名法,方法名采用大驼峰命名法。
  • 常量必须初始化且声明后不能修改。
  • 类型转换分为隐式转换(小范围转大范围)和显式转换(括号强转、Parse 法和 Convert 法)。

CHAPTER 03

运算符与表达式

详细阐述算术运算符、条件运算符、逻辑运算符、位运算符以及三目运算符的应用规则与优先级。

  • 算术运算符优先级:乘除取余 > 加减 > 赋值,括号可改变优先级。
  • 逻辑与 (&&)、逻辑或 (||)、逻辑非 (!) 遵循短路求值规则。
  • 位运算符包括按位与、或、异或、取反及左右移操作。
  • 三目运算符的第一个条件表达式结果必须为 bool 类型。

CHAPTER 04

流程控制与异常捕获

总结条件分支语句、循环结构以及 try-catch 异常捕获机制,帮助编写健壮的代码逻辑。

  • 异常捕获能有效避免代码报错导致程序直接卡死。
  • switch 语句的 case 常量必须是写死的值,支持使用 break 贯穿。
  • while 和 do...while 循环通过 break 和 continue 控制程序流。
  • for 循环在处理确定范围的循环时比 while 更加方便。

CHAPTER 05

常见数据结构与排序算法

梳理枚举、一维与二维数组、结构体的使用方法,并深入剖析冒泡排序与选择排序的原理及优化。

  • 枚举常用于表示状态类型,常与 switch 语句配合使用。
  • 数组在使用前必须先初始化,一维和二维数组是常见的数据容器。
  • 结构体是变量和函数的集合,属于值类型,声明时变量不能初始化。
  • 冒泡排序通过两两比较相邻元素,并可通过标志位优化性能。

CHAPTER 06

面向对象 --- 封装与核心特性

全面解析面向对象编程中类与对象、成员变量、成员方法、属性、索引器及静态成员的核心概念。

  • 类是对象的抽象,实例化一个类对象等同于声明一个变量。
  • 成员属性通过 get 和 set 访问器保护字段,支持数据加密与解密。
  • 静态成员(static)在程序启动时分配内存,生命周期直到程序结束。
  • 拓展方法必须写在静态类中,且第一个参数必须用 this 修饰目标类型。

CHAPTER 07

面向对象 --- 继承与多态

探讨 C# 的单继承规则、里氏替换原则、万物之父 object、接口、抽象类以及多态的实现方式。

  • C# 仅支持单继承,子类可以通过关键字继承父类并使用保护修饰符 protected。
  • 里氏替换原则允许用父类容器装载子类对象,并可使用 is 和 as 进行类型判断与转换。
  • 抽象类和抽象方法使用 abstract 关键字,继承者必须重写抽象方法。
  • 接口定义行为规范,支持多实现,当出现同名方法时可通过显式实现接口解决。

CHAPTER 08

面向对象与设计原则

复习了抽象类与接口的区别及选择标准,并深入归纳了软件开发的七大设计原则。

  • 抽象类表示对象的本质,接口表示行为的规范。
  • 单一职责原则强调一个类只负责一项职责。
  • 开闭原则要求对扩展开放,对修改关闭。
  • 里氏替换原则保证基类可以被子类无缝替换。
  • 依赖倒转原则提倡面向接口编程,依赖于抽象而不依赖于具体。

CHAPTER 09

数据结构与泛型

详细介绍了 C# 中的简单数据结构、泛型机制、泛型约束以及常用泛型集合的原理与使用。

  • ArrayList 的本质是 object 类型的数组,存在装箱和拆箱开销。
  • Stack 和 Queue 分别遵循先进后出和先进先出原则。
  • 泛型是类型参数化的占位符,可以显著优化性能并避免装箱拆箱。
  • 泛型约束包括值类型、引用类型以及无参公共构造函数约束等。
  • Dictionary 基于键值对存储,通过键快速查找,查不到时会直接报错。

CHAPTER 10

委托、事件与 Lambda 表达式

讲解了委托的定义与多播用法、事件的封装机制,以及匿名函数与 Lambda 表达式的应用。

  • 委托是将函数作为参数传递的引用类型,多播委托可以存储并依次执行多个函数。
  • Action 和 Func 是系统内置的无返回值和有返回值的泛型委托。
  • 事件本质上是对委托的封装,只能在类内部触发,保证了封装性。
  • Lambda 表达式简化了匿名函数的书写,常用于集合排序和 LINQ 查询。
  • 闭包现象中需注意临时变量的作用域变化问题。

CHAPTER 11

多线程与异步

介绍了进程、线程的概念,以及多线程编程中的线程同步与锁机制。

  • 线程是进程中的实际运作单位,一个进程可以包含多个线程。
  • 默认创建的是前台线程,主线程结束后前台线程仍会继续执行。
  • 需将后台线程配合主程序关闭,以确保程序能正常退出。
  • 多线程并发操作共享数据时容易产生冲突,需要使用加锁机制保证安全。
  • 加锁虽然保证了线程安全,但会降低执行效率。

CHAPTER 12

反射与特性

探讨了程序集与元数据的概念,反射的动态类型操作,以及系统与自定义特性的应用。

  • 反射允许在运行时获取程序集的元数据并动态实例化对象。
  • Type 类是获取类型信息的核心,通过 GetMembers 可以获取所有公共成员。
  • 特性本质是一个类,可为元数据添加额外的信息并在运行时读取。
  • 常用系统特性包括过时特性 Obsolete 和条件编译特性 Conditional。
  • Activator.CreateInstance 可以通过 Type 快速创建对象实例。

CHAPTER 13

特殊语法与高阶排序算法

梳理了 C# 的现代特殊语法(如可空类型、空合并操作符等)及五大经典进阶排序算法。

  • 可空类型(?)允许值类型赋予 null 值,HasValue 用于判断是否有值。
  • 空合并操作符(??)用于判断左侧是否为空,为空则返回右侧默认值。
  • 插入排序通过构建有序序列,对于未排序数据在已排序序列中从后向前扫描进行插入。
  • 归并排序采用分治法,将数组不断平分并合并有序子序列。
  • 快速排序通过选择基准元素将数组分区实现高效排序。

原笔记正文和上传文件仅作者本人可见。本页面展示的内容为作者审核后主动发布的章节摘要。