
C#核心学习
文章平均质量分 90
C#之面向对象相关知识
FAREWELL00075
粉丝多多!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C#核心学习(一)面向过程与面向对象编程---初识类和对象
那么什么是对象,什么是类呢?类(Class)和对象(Object)是面向对象编程(OOP)的核心概念,它们的关系如同“设计图纸”与“具体产品”。我们之前每次写程序的时候,其实就是在系统直接给我们提供的模板上的类进行代码的编写。原创 2025-03-29 00:37:10 · 1082 阅读 · 0 评论 -
C#核心学习(二)面向对象——封装(1)成员变量与成员方法
官方解释:封装是面向对象编程的基石,通过绑定数据与操作并控制访问权限,实现数据保护和逻辑隔离。程序员翻译成员变量是藏在金库里的黄金成员方法是城堡的守卫和交易窗口访问修饰符是金库的密码锁”// 黄金藏在金库(private)public void Withdraw(decimal amount) { // 交易窗口(public方法)原创 2025-03-30 01:02:03 · 1574 阅读 · 0 评论 -
C#核心学习(三)面向对象--封装(2)构造函数和析构函数
在C#开发中,对象的创建、初始化和销毁是代码设计的核心环节,直接影响程序的健壮性、性能和资源利用率。然而,许多开发者对构造函数的重载技巧、析构函数的执行时机,尤其是如何与垃圾回收机制(GC)协同工作,常常存在困惑。例如:为什么对象初始化时要优先使用参数化构造函数?如何避免非托管资源(如文件句柄、数据库连接)泄漏导致的内存问题?“我用using包裹了对象,但程序依然卡顿”——这是GC的“锅”,还是代码设计的问题?这些问题看似基础,却隐藏着C#内存管理与对象生命周期的关键设计哲学。本文将从。原创 2025-03-31 08:50:44 · 1195 阅读 · 0 评论 -
C#核心学习(四)面向对象--封装(3)成员属性
前言在面向对象编程中,封装是保障代码健壮性和可维护性的核心原则之一。C#的成员属性(Property)作为实现封装的关键工具,通过统一的数据访问接口,解决了直接操作字段带来的风险与局限性。成员属性的核心价值在于:可控的数据访问:通过 get 和 set 访问器,对字段的读写行为进行逻辑控制。隐式验证机制:在数据赋值时自动执行校验规则(如范围检查、空值处理)。灵活的扩展能力:支持动态计算值、延迟加载资源等场景,避免冗余代码。本文将以实用性为导向,系统讲解成员属性的本质、声明方式、典型应用原创 2025-04-01 11:01:20 · 768 阅读 · 0 评论 -
C#核心学习(五)面向对象--封装(4)C#中的索引器详解:让对象像数组一样灵活访问
C#中的索引器学习记录原创 2025-04-02 13:34:57 · 1430 阅读 · 0 评论 -
C#核心学习(六)面向对象--封装(5)静态成员及静态构造函数和静态类 以及和常量的区别
关于C#中的静态成分和常量的关系原创 2025-04-02 23:55:57 · 1265 阅读 · 0 评论 -
C#核心学习(七)面向对象--封装(6)C#中的拓展方法与运算符重载: 让代码更“聪明”的魔法
核心知识点速览拓展方法是什么:为现有类型(包括系统类型)添加“假装的”实例方法,无需修改源码。怎么用:静态类 + this 参数,例如为 int 添加 IsEven() 方法。典型场景:增强工具方法、实现链式调用(如LINQ)。运算符重载是什么:让自定义类型支持 +、== 等运算符的语义化操作。怎么用:public static operator 定义,例如实现向量相加。典型场景:数学计算、集合操作、物理引擎开发。原创 2025-04-03 23:47:56 · 1289 阅读 · 0 评论 -
C#核心学习(八)面向对象--封装(7)终章 C#内部类和分部类、密封类
在C#的封装艺术中,内部类、分部类和密封类是三类看似低调却功能强大的设计工具。它们分别服务于代码组织、模块化拆分和继承控制三大核心场景:内部类通过逻辑嵌套实现细节隐藏,成为迭代器、状态机的天然载体;分部类突破文件限制,让自动生成代码与手工代码和谐共存;密封类作为继承链的“终结者”,在安全性与性能优化中扮演关键角色。本文以代码示例为锚点,深入解析三类特殊类的设计哲学、应用场景与实战避坑指南,助你在封装性与扩展性之间找到完美平衡。原创 2025-04-04 13:55:21 · 840 阅读 · 0 评论 -
C#核心学习(九)面向对象--继承(1)继承:代码复用的基石与多态的桥梁
继承的核心要点速览是什么:子类自动获取父类成员(如方法、属性),支持扩展与重写。核心价值:✅ 代码复用:告别重复造轮子(如Animal→Cat复用Eat())✅ 多态基石:统一接口调用不同子类(如GameCharacter攻击逻辑分化)✅ 层次化设计:分类管理对象(生物→动物→猫科→品种)硬核规则:🚫 单继承:只能一个父类,接口实现多继承效果🔒 构造函数链:子类必须调用父类构造(base显式控制)✏️ 方法重写:virtual+override实现多态,base回溯原创 2025-04-05 14:37:41 · 1007 阅读 · 0 评论 -
C#核心学习(十)面向对象(特别章)面向对象的七大原则!里氏替换原则详解
里氏替换原则(LSP)是面向对象设计的核心原则,要求子类必须能够无缝替换父类,确保继承体系的行为一致性。其重要性体现在三方面:继承安全性:防止子类破坏父类契约(如篡改方法输入/输出约束);多态基础:保障父类引用调用子类方法时的逻辑正确性;扩展基石:为开闭原则提供支撑,通过扩展子类而非修改父类实现功能升级。其他六大原则的学习可结合典型场景:单一职责:重构臃肿类时拆分职责;开闭原则:设计插件化系统或扩展框架功能;接口隔离:定义轻量级API契约;依赖倒置:通过依赖注入解耦模块;原创 2025-04-06 21:35:03 · 887 阅读 · 0 评论 -
C#核心学习(十一)面向对象--继承(2):万物之父object和装箱拆箱
C#中所有类型的基类object是类型系统的核心,支持多态和泛型等特性。它提供ToString()、Equals()、GetType()和GetHashCode()等基础方法:ToString()返回对象字符串表示,常被子类重写;Equals()默认对引用类型比较地址,值类型比较值(需注意重写逻辑);GetType()用于反射获取运行时类型;GetHashCode()生成哈希码以支持哈希表。装箱将值类型转为object引用类型(数据从栈复制到堆),拆箱则是逆向操作(需严格类型匹配)。原创 2025-04-07 09:36:48 · 802 阅读 · 0 评论 -
C#核心学习(十二)面向对象--多态(1)virtual override和base三剑客
本文系统解析C#多态的核心机制,聚焦virtual、override和base三大关键字。通过动物园管理系统对比案例,直观展现多态消除类型判断的价值;深度剖析虚方法表(vtable)的内存布局与动态寻址原理,揭示多态背后的"导航系统";结合智能家居控制实战,演示如何通过继承体系实现统一设备接口。针对构造函数调用虚方法、new方法隐藏等常见陷阱,提供避坑指南与设计原则。文章包含:多态的本质解析、虚方法体系的三层递进用法、vtable的快递寻址模型、override与new的终极对比,以及性能优化三原则。读者将原创 2025-04-08 20:51:30 · 852 阅读 · 0 评论 -
C#核心学习(十三)面向对象--多态(2)抽象类、抽象方法和密封方法
本文深入解析C#面向对象编程中多态的两个关键特性:抽象类与密封类。抽象类通过 abstract 关键字定义,强制派生类实现其抽象方法,适用于定义通用基类逻辑(如“形状”基类要求子类必须实现“计算面积”方法)。密封类与密封方法通过 sealed 关键字限制继承和重写,保护核心代码不被篡改(如系统工具类或关键算法)。文中结合代码示例,对比抽象类与接口的区别,并给出实际开发中的最佳实践,帮助开发者灵活运用多态特性,构建高内聚、低耦合的系统。原创 2025-04-09 16:11:40 · 965 阅读 · 0 评论 -
C#核心学习(十四)面向对象--多态(3):接口
接口是C#实现多态的核心机制,通过定义行为契约规范类的功能。本文详解接口的声明、显式实现、多态调用等特性,对比接口与抽象类的设计差异,剖析接口继承、默认方法等高级用法,并结合代码示例展示接口如何通过里氏替换原则实现灵活解耦,为面向对象设计提供关键范式。原创 2025-04-10 19:18:03 · 1180 阅读 · 0 评论 -
C#核心学习(十五)面向对象--关联知识点(1)命名空间
命名空间(Namespace)是C#中用于组织和管理代码逻辑的核心机制。它本质上是一个逻辑容器,可以将类、结构、接口等类型进行分组管理,类似于操作系统的文件夹系统。但不同于物理文件夹,命名空间是纯粹的逻辑划分,与文件存储位置无关。就可以把他想成是一个工具包,装载着不同类的工具。原创 2025-04-11 08:20:43 · 392 阅读 · 0 评论