
奶奶都能看懂的 C# —— LINQ、 Lambda 和 IEnumerable
C# 教程Coding with Grandma2026-02-04
本文深入讲解 C# 中 LINQ 与 Lambda 表达式,介绍如何将声明式查询转换为方法链调用,详细拆解 Where、OrderBy、GroupBy 和 Join 等关键操作。最后通过实现 IEnumerable 接口与 yield return 机制,揭示 LINQ 查询的底层迭代原理。

C# 教程Coding with Grandma2026-02-04
本文深入讲解 C# 中 LINQ 与 Lambda 表达式,介绍如何将声明式查询转换为方法链调用,详细拆解 Where、OrderBy、GroupBy 和 Join 等关键操作。最后通过实现 IEnumerable 接口与 yield return 机制,揭示 LINQ 查询的底层迭代原理。

C# 教程Coding with Grandma2026-02-01
本文用易懂示例介绍 C# LINQ 的使用前提与查询思路,从 IEnumerable 集合开始,演示基础查询、声明式语法、分组查询和 join 合并操作,并解释查询的延迟执行特性。通过对比查询表达式和处理结果的过程,帮助初学者理解 LINQ 如何筛选、整理和组合集合数据。

C# 教程2023-12-08
本文详解在 WinForms 中使用 Screen 类控制多显示器窗口,先说明 Windows 虚拟桌面坐标与屏幕排列方式,再演示枚举 Screen.AllScreens、选择目标显示器,并用 Bounds 或 WorkingArea 设置窗体位置和全屏尺寸。适合需要将应用窗口移动到指定屏幕的 C# 开发者参考。
C# 教程2023-01-27
本文演示在 C# WinForms 中通过 P/Invoke 调用 SetForegroundWindow 和 GetForegroundWindow 获取、切换前台窗口,并解释 Windows 阻止程序擅自抢占焦点的限制。文章提供重启进程后重试的示例,同时提醒该方法成功率有限,帮助理解窗口焦点控制的实现与边界。
C# 教程2022-12-30
本文补充 C# 显式接口成员实现的用法,说明当一个类实现多个包含同名方法的接口时,如何分别提供实现,以及这些成员为何不能直接通过类实例访问。文章通过代码示例演示使用接口引用和显式类型转换调用对应方法,帮助处理接口成员重名并厘清接口与类的访问方式。
C# 教程2022-05-29
本文通过 WinForms 的 MouseDown、MouseMove 和 MouseUp 事件实现窗体拖动,先记录按下时鼠标相对窗体左上角的偏移,再结合 MousePosition 更新窗体 Location,并在松开时结束拖动。文章逐步解释坐标计算与 Offset 的作用,帮助理解鼠标事件和窗体位置之间的关系。
C# 教程2022-02-11
本文梳理 C# 枚举与集合的常用操作,从枚举成员、数值转换和 ToString(),到 List 的创建、初始化、遍历、排序及类型转换,并介绍 IEnumerable、字典、队列和栈等集合。结合代码示例说明何时选用不同容器,帮助读者建立处理成组数据的基础。
C# 教程2022-01-26
本文介绍 C# 接口与抽象类的概念和适用场景,讲解如何实现接口、使用接口引用和进行类型转换,并补充接口继承与访问修饰符等规则。文章还比较接口和抽象类在面向对象设计中的作用,讨论依赖抽象、组合职责等设计原则,帮助读者判断如何组织类与行为,并厘清两者的适用边界。
C# 教程2022-01-24
本文讲解 C# 继承的基础概念与使用方式,介绍基类和子类如何复用成员、如何整理两个类的共同部分,并比较方法覆盖与隐藏的区别。文章还结合构造函数调用顺序、基类引用和子类对象说明运行行为,帮助初学者理解类之间的关系及继承的适用场景,并说明继承的适用时机。
C# 教程2022-01-23
本文介绍 C# 封装如何保护对象内部状态,讲解私有字段、属性的 get 与 set、自动属性及其与后备字段的关系,并说明如何在设置属性时加入逻辑。文章还通过构造函数初始化对象,展示用属性控制数据读写、避免直接修改字段造成状态错误的基本做法,配合简单代码说明属性的使用过程。