C# 中的事件2025年3月17日 | 阅读 3 分钟 事件是即将发生的特殊事情。这里我们以一个事件为例,微软为开发者推出了活动。在此活动中,微软希望开发者了解现有或新产品的特性。为此,微软将使用电子邮件或其他广告选项来告知开发者此活动。因此,在这种情况下,微软将作为发布者发起活动并通知开发者。开发者将作为事件的订阅者处理事件。 同样,在 C# 中,事件遵循相同的概念。在 C# 中,事件可以是订阅者、发布者、订阅者、通知和处理程序。通常,用户界面使用事件。这里我们将以 Windows 中的 Button 控件为例。Button 执行多个事件,例如点击、鼠标悬停等。自定义类包含事件,通过它我们将通知其他订阅者类即将发生的其他事情。因此,在这种情况下,我们将定义事件并通知其他包含事件处理程序的类。 事件是封装的委托。C# 和 .NET 都支持带有委托的事件。当应用程序的状态发生变化时,事件和委托会向客户端应用程序发出通知。委托和事件都紧密耦合以分派事件,事件处理需要委托的实现。发送事件的类称为发布者,接收或处理事件的类称为订阅者。 有关事件的要点是有关事件的要点如下
事件的声明语法public event EventHandler CellEvent; 实现事件的步骤要在类中声明事件,首先必须声明委托的事件类型。 public delegate void CellEventHandler(object sender, EventArgs e); 事件的声明public event CellEventHandler CellEvent; 事件的调用if (CellEvent != null) CellEvent(this, e); 我们只能在声明事件的类中调用事件。 连接事件OurEventClass.OurEvent += new ChangedEventHandler(OurEventChanged); 分离事件OurEventClass.OurEvent -= new ChangedEventHandler(OurEventChanged); 委托充当函数的指针。它是一种引用数据类型,它持有方法的引用。所有委托都隐式派生自 System.Delegate 类。 可以使用 delegate 关键字声明委托,后面跟着签名 委托的语法委托的示例public delegate void PrintWord(int value); 上面的 PrintWord 委托可用于指向任何具有相同返回类型和与 PrintWord 声明的参数的方法。这里我们将举例说明如何声明和使用 PrintWord 委托。 输出 ![]() 在上面的示例中,我们声明了 PrintWord 委托,它接受 int 类型参数并返回 void。在 main() 方法中,我们声明了 PrintWord 类型方法并分配了 PrintNum 名称方法。现在我们将调用 PrintWord 委托,它反过来调用 PrintNum 方法。同样,如果 PrintWord 委托变量分配给 PrintMoney 方法,则它将调用 PrintMoney 方法。 此外,我们可以使用 new 运算符创建委托对象并指定方法的名称,如下所示 委托可以声明如下 下一个主题C# 中的正则表达式 |
接口类似于类,只是它包含实现接口的类中公共属性、方法、事件和索引器的定义(签名)。在讨论接口时,我们使用“实现”一词来指代其结构由接口控制的类。...
阅读 3 分钟
在本文中,我们将讨论 C# 中的 Console.SetWindowPosition() 方法及其语法和示例。介绍 开发人员可以通过使用 C# 中的 Console.SetWindowPosition() 函数来精确控制控制台窗口在屏幕上的位置。此函数是 Console 类的一部分,位于...
阅读 6 分钟
Char.Equals() 方法用于比较两个字符是否相等。这是一个静态方法,用于检查给定的两个字符是否相同。此方法返回一个布尔值,指示指定的字符是否相等。语法:Char.Equals() 方法的语法。public...
阅读 4 分钟
简介:在软件开发中,依赖注入 (DI) 是一种流行的设计模式,有助于管理对象之间的依赖关系。它是一种创建松散耦合的软件组件的技术,使代码更模块化、可测试和可维护。DI 可以通过多种方式实现,其中一种是...
阅读 4 分钟
在本文中,我们将讨论一个 C# 程序来演示 CanRead 属性的使用。但在讨论实现之前,我们必须了解 C# 中的 CanRead 属性。 “CanRead 属性”的介绍在编程中,尤其是在处理文件操作或流时,能力...
7 分钟阅读
在本文中,您将了解 C# 中的 Console.TreatControlCAsInput 属性及其语法、参数和示例。什么是 Console.TreatControlCAsInput 属性?属性“Console.TreatControlCAsInput”可以获取或修改一个值,该值指示操作系统是否将 Control 修饰键和 C 控制台键 (Ctrl+C) 组合解释为...
5 分钟阅读
C# 在游戏中的应用:利用高级语言的强大功能 在游戏开发编程语言方面,C# 近年来已成为一种越来越受欢迎的选择。这种高级语言为游戏开发者提供了许多优势,包括简化的语法、强大的类库……
阅读 3 分钟
在 C# 中,值类型和引用类型是数据类型的基本类型,每种类型都有不同的行为和用法。这些类型定义了变量在内存中的存储位置以及在为其赋值时的行为方式。在本文中,我们...
阅读 10 分钟
在本文中,我们将讨论以及它的语法、参数和示例。简介 C# 中的接口连接功能类似于之前被指定为接口类型的参数。在 C# 中,接口是一个容器,它指定了一组方法...
7 分钟阅读
在本文中,您将了解 C# 中 lambda 表达式和委托之间的区别。但在讨论它们的区别之前,您必须了解 lambda 表达式和委托及其语法和示例。什么是委托?表示方法的引用类型...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India