C# 编程语言中的事件处理程序负责处理由编码器编程的事件,以便在需要时异步执行。每种编程语言都有其功能和局限性,而事件处理程序是正确执行程序的重要功能之一。
我们知道发生的任何事件都是一个动作,它是另一个动作的结果,就像一个简单的点击按钮后面的功能。委托是事件处理程序的重要组成部分,创建时它的目标是事件处理程序方法。
语法:
现在我们已经了解了事件处理程序是什么,让我们继续了解更多信息。函数或方法的语法是至关重要的部分,事件处理方法的简单语法如下:
public delegate void SimpleEH(int a, int b);
我们已经很好地了解了 C# 中的事件处理程序是什么及其各自的语法。但理解事件处理程序的工作是一个重要的部分,它有助于更好的实现。程序中的每个移动或步骤都是一个事件,由事件处理程序处理。我们有一个事件处理程序方法,并且委托用于指向该方法。这里的委托可以是这五种类型中的任何类型:类、接口、结构、枚举和委托。
我们必须创建一个我们已经通过语法学习的委托实例。我们创建的委托指向事件处理程序方法。 这里,我们必须记住,.NET 中的所有 C# 事件基本上都是基于委托的。
基本上,我们必须在事件接收器中定义一个事件处理程序方法才能响应事件。为了更好地实现,代表事件的委托的签名必须与我们当前正在处理的事件的方法匹配。
以下是提到的示例:
我们已经了解了事件处理程序方法、它的语法及其工作原理。现在我们开始实施;在这里,我们将编写一个程序来打印版本并执行它。
代码:
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; } }
输出:
说明:我们只是从导入我们的系统开始。随后是代表的声明。我们已经理解了我们在这里实现的语法。我们有两个没有委托的参数,都是整数,a 和 b。然后是我们的类Program,有main方法。我们有一个简单的加法器,带有一个新实例。我们在程序中进一步创建了一个 Adder 类。然后我们创建委托实例并调用加法器实例进行添加。然后我们简单地传递了两个值,这里是 4 和 3。最后,我们有了 print 语句,它将打印出sampleOutput =,然后将我们传递的两个值相加。
然后我们有公共类 Adder,其中对我们之前传递的值进行添加操作。 Add 函数接受两个参数并返回两者的相加,并将其传递给输出。为了正确的输出,请参考下面的截图:
继续,我们将在下一个示例中实现事件处理程序委托方法。
代码:
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"); } }
输出:
说明:与我们的第一个示例类似,我们使用了一个语句,然后使用了委托和带有 main 方法的类的声明。我们已经展示了将新事件添加到列表中的方法实例。然后我们添加两个事件:Event 和 Handler。为了简单起见,我们对事件使用了 static 修饰符,这将允许在静态 Main 方法中直接访问事件。
此外,这里使用的 += 与算术运算无关。输出结果请参考下面的截图:
每个事件都是一个动作,事件处理程序会正确处理该事件。我们为委托创建一个实例并在需要时调用它;委托实例指向事件处理程序方法。这些事件在 Windows 窗体框架中广泛使用,并且是事件处理程序,在线程的情况下,我们实现 BackGroundWorker 类型。
以上是C# 事件处理程序的详细内容。更多信息请关注PHP中文网其他相关文章!