首页  >  文章  >  后端开发  >  C# 事件处理程序

C# 事件处理程序

PHPz
PHPz原创
2024-09-03 15:28:561318浏览

C# 编程语言中的事件处理程序负责处理由编码器编程的事件,以便在需要时异步执行。每种编程语言都有其功能和局限性,而事件处理程序是正确执行程序的重要功能之一。

我们知道发生的任何事件都是一个动作,它是另一个动作的结果,就像一个简单的点击按钮后面的功能。委托是事件处理程序的重要组成部分,创建时它的目标是事件处理程序方法。

语法:

现在我们已经了解了事件处理程序是什么,让我们继续了解更多信息。函数或方法的语法是至关重要的部分,事件处理方法的简单语法如下:

public delegate void SimpleEH(int a, int b);
  • 你一定注意到了 delegate 关键字,它是一种特殊类型,纯粹代表方法。我们拥有的两个参数是对象和 EventArgs,它们可能有不同的用途。
  • 上面这个简单的委托有一个基本操作,即指向事件处理方法,该方法接受两个整数参数并返回一个整数。该方法的语法可以在命名空间级别声明,这将实现一个简单的规则,即不需要在任何嵌套类中重复它。

EventHandler 在 C# 中如何工作?

我们已经很好地了解了 C# 中的事件处理程序是什么及其各自的语法。但理解事件处理程序的工作是一个重要的部分,它有助于更​​好的实现。程序中的每个移动或步骤都是一个事件,由事件处理程序处理。我们有一个事件处理程序方法,并且委托用于指向该方法。这里的委托可以是这五种类型中的任何类型:类、接口、结构、枚举和委托。

我们必须创建一个我们已经通过语法学习的委托实例。我们创建的委托指向事件处理程序方法。  这里,我们必须记住,.NET 中的所有 C# 事件基本上都是基于委托的。

基本上,我们必须在事件接收器中定义一个事件处理程序方法才能响应事件。为了更好地实现,代表事件的委托的签名必须与我们当前正在处理的事件的方法匹配。

实现 C# EventHandler 的示例

以下是提到的示例:

示例#1

我们已经了解了事件处理程序方法、它的语法及其工作原理。现在我们开始实施;在这里,我们将编写一个程序来打印版本并执行它。

代码:

using System;
public delegate int EHsample(int a, int b);
class Program {
static void Main() {
Adder a = new Adder();
EHsample instanceEHsample = new EHsample(a.Add);
int sampleOutput = instanceEHsample(4, 3);
Console.WriteLine("\n sampleOutput = {0}", sampleOutput);
}
}
public class Adder {
public int Add(int x, int y)
{ return x + y; }
}

输出:

C# 事件处理程序

说明:我们只是从导入我们的系统开始。随后是代表的声明。我们已经理解了我们在这里实现的语法。我们有两个没有委托的参数,都是整数,a 和 b。然后是我们的类Program,有main方法。我们有一个简单的加法器,带有一个新实例。我们在程序中进一步创建了一个 Adder 类。然后我们创建委托实例并调用加法器实例进行添加。然后我们简单地传递了两个值,这里是 4 和 3。最后,我们有了 print 语句,它将打印出sampleOutput =,然后将我们传递的两个值相加。

然后我们有公共类 Adder,其中对我们之前传递的值进行添加操作。 Add 函数接受两个参数并返回两者的相加,并将其传递给输出。为了正确的输出,请参考下面的截图:

示例#2

继续,我们将在下一个示例中实现事件处理程序委托方法。

代码:

using System;
public delegate void sampleEventHandler();
class Program {
public static event sampleEventHandler _show;
static void Main() {
_show += new sampleEventHandler(Event);
_show += new sampleEventHandler(Handler);
_show.Invoke();
}
static void Event() {
Console.WriteLine("\n Event");
}
static void Handler() {
Console.WriteLine("\n Handler");
}
}

输出:

C# 事件处理程序

说明:与我们的第一个示例类似,我们使用了一个语句,然后使用了委托和带有 main 方法的类的声明。我们已经展示了将新事件添加到列表中的方法实例。然后我们添加两个事件:Event 和 Handler。为了简单起见,我们对事件使用了 static 修饰符,这将允许在静态 Main 方法中直接访问事件。

此外,这里使用的 += 与算术运算无关。输出结果请参考下面的截图:

结论

每个事件都是一个动作,事件处理程序会正确处理该事件。我们为委托创建一个实例并在需要时调用它;委托实例指向事件处理程序方法。这些事件在 Windows 窗体框架中广泛使用,并且是事件处理程序,在线程的情况下,我们实现 BackGroundWorker 类型。

以上是C# 事件处理程序的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:Listbox in C#下一篇:Private in C#