
《C#学习笔记》
文章平均质量分 78
c#功能
X-Vision
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C# 之委托与事件详解
C#委托与事件核心机制解析 摘要:本文深入探讨C#中委托与事件的核心机制。委托作为类型安全的函数指针,支持多播和泛型应用(如Func/Action)。事件基于委托实现发布-订阅模型,采用标准模式定义和触发。文章详解了协变/逆变、异步调用、弱事件等高级特性,并展示了在LINQ和设计模式(如观察者模式)中的实际应用。通过自定义事件访问器和WeakEventManager等技术,开发者可以构建松耦合、高效且内存安全的响应式系统。这些机制共同构成了C#事件驱动编程的基础,为复杂应用程序提供了灵活的架构方案。原创 2025-06-05 17:25:32 · 887 阅读 · 0 评论 -
C#之抽象类与接口详解
C#中的抽象类和接口是实现多态的两种核心机制。抽象类作为不能实例化的基类,可以包含抽象成员、虚方法和普通方法,适合代码复用和模板方法模式,但仅支持单继承。接口则定义契约而非实现,支持多重继承,C#8.0后允许默认实现,常用于插件系统、跨组件通信等松耦合场景。关键区别在于:抽象类侧重代码共享,接口侧重行为契约。实际开发中常组合使用,抽象类提供基础实现,接口扩展特定能力。显式接口实现可解决多接口命名冲突问题。原创 2025-06-05 17:16:01 · 798 阅读 · 0 评论 -
C# 之封装、继承与多态详解
C#面向对象编程三大特性详解 摘要: 本文系统介绍了C#面向对象编程的三大核心特性:封装、继承和多态。封装通过访问修饰符控制数据访问,保护内部实现;继承实现代码复用,允许子类扩展父类功能;多态通过方法重写、抽象类和接口实现统一接口处理不同对象。文章详细演示了各特性的语法实现,分析了其优势,并提供了图形编辑器的综合应用示例。这些特性共同构成了C#面向对象编程的基础,使代码更模块化、可扩展和易维护。(149字)原创 2025-06-05 17:14:44 · 825 阅读 · 0 评论 -
C# 之类与对象详解
本文详细介绍了C#中的类与对象概念,包括类成员(字段、属性、方法)、构造函数与析构函数、索引器与操作符重载等核心特性。通过示例代码展示了类定义、对象实例化、封装实现以及扩展方法等编程技巧。内容涵盖静态/实例成员、方法重载、嵌套/匿名类、部分类等面向对象编程的重要概念,为C#开发者提供了全面的类与对象使用指南。原创 2025-06-05 17:11:48 · 517 阅读 · 0 评论 -
C# 之面向对象编程(OOP)详解
C#面向对象编程(OOP)详解摘要:本文系统讲解了C#中面向对象编程的核心概念,包括类与对象、构造函数、继承多态、访问修饰符等基础内容,以及静态类、密封类、扩展方法等高级特性。重点阐述了OOP四大原则(封装、继承、多态和抽象)的实现方式,并介绍了SRP、OCP、LSP等设计原则。文章还提供了包括封装字段、组合优于继承、依赖注入等多项最佳实践建议,帮助开发者构建结构良好、易于维护的C#应用程序。原创 2025-06-05 16:56:37 · 813 阅读 · 0 评论 -
C# 之基础语法与数据类型详解
本文详细介绍了C#编程语言的基础语法与核心数据类型。主要内容包括:1) C#程序基本结构,如Hello World示例和代码特点;2)变量与常量的声明和使用;3)值类型和引用类型的分类及示例;4)算术、关系、逻辑和赋值运算符;5)隐式和显式类型转换方法;6)字符串的基本操作和常用方法;7)一维、多维和交错数组的使用。这些基础知识为学习C#面向对象编程和高级特性奠定了基础。文章采用代码示例与表格相结合的方式,清晰展示了各种语法规则和数据类型的使用方法。原创 2025-06-05 16:52:10 · 346 阅读 · 0 评论 -
C#之Dock属性的详细用法
摘要:C#中的Dock属性是Windows Forms的重要布局工具,通过DockStyle枚举设置控件在父容器中的停靠方式(Top/Bottom/Left/Right/Fill/None)。使用时需注意控件添加顺序,先添加的控件优先停靠,Fill控件应最后添加。与Anchor不同,Dock控制整体停靠而非边缘固定。典型应用包括创建工具栏、状态栏和自适应界面布局,通过合理使用可简化复杂界面的开发。原创 2025-06-05 16:48:22 · 592 阅读 · 0 评论 -
C#之自定义Windows Forms标题栏实现(最小化、最大化/还原、关闭、拖动、DPI缩放支持、主题感知、动画效果、窗口阴影)
Windows Forms自定义标题栏增强实现 摘要:本文展示了一个功能完整的自定义Windows Forms标题栏实现方案,包含以下核心特性: 基础功能:支持最小化、最大化/还原、关闭按钮,以及窗体拖动和双击最大化操作 DPI适配:自动检测系统DPI缩放比例,调整控件大小和字体 主题支持:提供浅色/深色模式切换能力 动画效果:按钮悬停时的平滑过渡动画 窗口阴影:为无边框窗体添加阴影效果 状态管理:正确处理窗体激活/非激活状态的外观变化 代码结构清晰,包含详细的注释说明,可作为WinForms现代化改造的参原创 2025-06-05 09:42:55 · 1310 阅读 · 0 评论 -
C#之改变Window Form的标题栏颜色和图标的方法
在C# Windows Forms应用中,可通过多种方式自定义标题栏外观:1) 更改窗体图标,通过属性窗口或代码设置.ico文件;2) 使用DWM API修改标题栏颜色(Windows 10+),或通过WndProc自定义绘制;3) 完全移除标准标题栏,创建包含自定义控件(如Panel、Label和Button)的替代方案。最佳实践建议使用多尺寸.ico图标,并考虑系统兼容性,推荐优先使用方法1和3,而方法2需要处理复杂的Windows消息和API调用。原创 2025-06-05 09:18:05 · 325 阅读 · 0 评论 -
C#之事件使用详解
C#事件是特殊的委托成员,用于实现发布-订阅模式,使对象间能够松耦合通信。事件包含三要素:事件源、事件参数和处理程序。声明使用EventHandler或泛型EventHandler<T>,通过+=和-=操作符添加/移除处理程序。事件比委托更安全,只能在声明类中触发。标准模式包括定义EventArgs派生类、声明事件和protected virtual触发方法。高级用法涉及自定义事件访问器和异步处理。最佳实践推荐使用标准事件模式、合理命名、处理null检查并注意内存管理。事件基于委托但封装性更强,原创 2025-06-05 09:15:04 · 312 阅读 · 0 评论 -
C#之IEnumerable详解
在 C# 中, 是一个泛型接口,用于表示可迭代的集合。以下是可以用作 (或其他 )参数的所有集合类型及其使用场景和示例:以下集合直接实现了 ,可以无缝传递:所有 LINQ 操作返回 ,可直接传递:3. 非泛型集合通过 或 可以将非泛型集合转为 :4. 自定义可迭代类型只要实现 接口的自定义集合均可传递:5. 其他特殊场景类型说明示例不可变数组(线程安全)线程安全队列/内存片段视图(需要高版本 C#,性能敏感场景) 生成器动态生成数原创 2025-03-19 13:07:42 · 1073 阅读 · 0 评论 -
C#之 Math 类提供的常用数学函数
类的核心功能,适用于数值运算、几何计算等场景。使用时需根据需求选择合适方法和类型。原创 2025-03-10 16:51:33 · 1471 阅读 · 0 评论 -
C#之winform工具箱添加自定义的选项卡
打开工具箱打开 Visual Studio 后,确保工具箱是可见的。如果没有显示工具箱,可以通过菜单栏选择视图->工具箱,或者使用快捷键Ctrl+Alt+X。创建自定义选项卡在工具箱面板上,右键点击空白处,选择添加选项卡。输入你想要的选项卡名称(例如“自定义控件”)。添加控件到自定义选项卡拖拽你想要添加到该选项卡的控件到新创建的选项卡中。如果是自定义控件,可以通过右键点击工具箱,选择选择项,然后在弹出的对话框中选择“浏览”并选择自定义控件的 DLL 文件,最后将控件添加到工具箱。原创 2024-11-28 17:02:36 · 1311 阅读 · 0 评论 -
C# 中字符串的拆分、查找、取值、去除指定字符等操作方法实现
/ 拆分字符串// 检查是否包含指定字符// 获取子字符串// 去除指定字符// 去除前后空格// 去除指定字符 (例如 '#' 字符)// 使用正则拆分字符串,|]");// 使用 LINQ 去除所有逗号。原创 2024-11-26 10:51:11 · 948 阅读 · 0 评论 -
C#中获取程序的根目录
如果你想获取程序启动时的根目录(即可执行文件所在的目录),是最推荐的方法。如果你关心当前的工作目录并且它可能会发生变化,使用或。使用获取应用程序的可执行文件所在目录,适用于更精确的需求。这些方法基本可以满足大多数获取根目录的需求。原创 2024-11-26 10:50:21 · 686 阅读 · 0 评论 -
C# 之常见的数据类型和容器集合的使用和特点全面详解
C# 中的集合类提供了丰富的选择,可以帮助你高效地存储、查找、修改数据。根据不同的需求选择合适的集合类型至关重要。例如,List适合频繁按索引访问的场景,适用于需要通过键值对查找的场景,而HashSet则非常适合去重操作。在并发编程中,使用或可以简化线程安全的问题。此外,LINQ 提供了强大的查询能力,可以让你以更加声明式的方式操作集合,提升代码的简洁性和可读性。C# 提供了丰富的集合类和容器类型,涵盖了从简单的列表、字典、集合到更高级的并发集合和不可变集合等多种需求。原创 2024-11-23 20:47:35 · 1489 阅读 · 0 评论 -
C#之 WinForms 控件的详解(功能、用法、属性、事件以及常见的操作技巧)
这些控件是 C# 和 WinForms 中常用的用户界面元素,能够帮助你快速开发功能丰富的桌面应用程序。每个控件都可以通过设置其属性、事件和方法来满足不同的应用需求。希望通过这些介绍,你对常见的 Windows 窗体控件有了更全面的理解,并能在实际开发中灵活运用它们。如果你有更具体的开发问题,随时可以提问!原创 2024-11-23 20:26:51 · 2528 阅读 · 0 评论 -
C#之WinForms 开发的全面知识结构
Windows Forms(WinForms)是微软的桌面应用开发框架,它提供了一种用于构建具有图形用户界面(GUI)的 Windows 应用程序的方式。以下是关于 WinForms 开发的全面知识结构,涵盖了从基本概念到高级特性,帮助开发者全面理解 WinForms 开发。原创 2024-11-23 20:21:26 · 977 阅读 · 0 评论 -
C# 知识结构学习路线(基础特性、高级特性、开发工具、以及常见的编程范式、设计模式)
详细、全面的 C# 知识结构,覆盖语言的基础特性、高级特性、开发工具、以及常见的编程范式、设计模式等,帮助你深入理解 C# 编程语言。值类型(Value Types):直接存储数据的类型,变量存储数据本身。引用类型(Reference Types):存储对数据的引用(指针),而不是数据本身。空值类型(Nullable Types):条件语句:循环语句:跳转语句:类定义:类成员:抽象类(abstract class):接口(interface):委托(Delegate):事件(Event):泛型类、方法、接口原创 2024-11-23 20:16:47 · 787 阅读 · 0 评论 -
C# 之Dictionary字典 的使用详解
字典的键不仅可以是基本类型,还可以是自定义类型,但必须确保自定义类型的 Equals和 GetHashCode方法是正确实现的,因为字典使用这些方法来判断键是否相等。set;set;// 使用 Person 作为字典的键C# 中的是一种非常高效的键值对存储结构,提供了常见的查找、插入、删除等操作,并且能够处理键值对数据。确保键是唯一的。注意字典的顺序问题,字典不保证键值对顺序。使用方法可以避免因键不存在而抛出异常。使用自定义类型作为字典的键时,需要重写Equals和方法。原创 2024-11-22 21:24:27 · 1339 阅读 · 0 评论 -
dnSpy-.NET开发者必备工具
dnSpy是一款免费的开源 .NET 反编译工具,支持 .NET Framework、.NET Core 和 Mono 程序的反编译和调试。通过 dnSpy,用户可以查看程序集的源代码,甚至修改和重编译程序集。它的目标是使逆向工程更易于理解和执行。反编译 .NET 程序集 (.exe, .dll) 为 C# 源代码。调试已编译的 .NET 程序(支持断点、单步执行等)。编辑 .NET 程序的 IL 代码或 C# 代码并重新编译。反编译dnSpy 能够将.NET程序(exe或dll。原创 2024-11-22 10:23:55 · 2038 阅读 · 0 评论