在 C# 中使用对象发送器

Saad Aslam 2023年10月12日
  1. C# 中的对象发送器概述
  2. C# 中对象发送器的使用
在 C# 中使用对象发送器

本文将讨论什么是对象发送者以及如何在 C# 中使用它。

C# 中的对象发送器概述

在开发 C# 应用程序和处理事件时,参数之一是 C# 对象发送方。它是一个参数,用于建立对事件引发的对象的引用,用于指示处理程序映射正确的对象。

借助 EventArgs 类,我们可以提供方法的参数;但是,在静态参数或事件的情况下,该值将变为空。为了在应用程序中用户需要的任何地方使用这些类,EventArgs 类及其函数 Object() { [native code] } 用于创建对象。

这些类取自默认框架。

C# 中对象发送器的使用

当我们希望使用特定类的方法、关键字和变量来为该类生成对象时,可以这样做,因为对象是 C# 中应用程序的根类和父类。

using System;
using System.Web;

Access modifiers class name {
  Access modifiers return type function_name(object referencename(sender),
                                             EventArgs referencename) {
    // some C# code logic depends upon the user requirement
  }
}

上面提到的代码提供了从一个位置到另一个位置使用和访问类对象的基本语法。处理程序和 EventArgs 将处理生成的对象。

发送者是 C# 语言中泛型对象的参数之一,也用于构建对象的实例。适当的应用程序事件会触发此事件。

处理事件和构造对象的机制称为事件处理程序,用于处理该事件。无论我们使用静态事件,参数值始终为空;但是,当我们使用静态或动态关键字时,值会有所不同。

连接到事件的方法称为事件处理程序。事件处理程序中包含的代码在引发事件时运行。

每个事件处理程序提供两个参数,以便你可以正确处理事件。事件处理程序是执行依赖于客户端请求的对象的主要方式之一;然后响应将在应用程序中发生的特定事件被触发。

发送方是可用于启动事件的主要控件之一,因为它会导致事件因对象发送方引用而被触发和完成。

UI 事件之一是按钮,主要用于用户活动和后端任务。每当我们点击发送者按钮时,客户端的数据将从前端和后端进行评估,触发事件并根据用户的要求执行活动。

简而言之,你可以说引发事件的项目称为发送者。EventArgs 中包含有关该事件的其他详细信息。

using System;

public class exmp {
  public event EventHandler evnts {
    add {
      Console.WriteLine("Welcome Example Started");
    }
    remove {
      Console.WriteLine("provide inputs");
    }
  }
}

public class examp {
  public void demo() {
    exmp emp = new exmp();
    emp.evnts += third;
    emp.evnts -= third;
  }
  public void third(object snd, EventArgs er) {}
  public static void Main(string[] args) {
    examp examp = new examp();
    examp.demo();
    Console.ReadKey();
    Console.WriteLine("Your events are started and executed successfully");
  }
}

第一个参数 snd 提供对引发事件的对象的引用。在上面的例子中,第二个参数,用字母 er 表示,传输一个对被处理事件唯一的对象。

要从内存中添加和删除数据,我们使用事件处理程序类的默认关键字 add remove。每个类实例及其方法计算这些值并使用它们;如果方法接受参数,它的实例将用于调用和传递参数。

相同的事件处理程序也可以为其他控件处理相同的事件。例如,如果表单包含 RadioButton 控件的集合,你可以为 Click 事件创建单个事件处理程序,并将每个控件的 Click 事件绑定到单个事件处理程序。

还有许多其他方法可以使用对象发送者和事件参数来处理事件,例如当对象形成和分配内存时,预定义方法 OnChanged()Add()Clear() 用于清理垃圾收集。如果我们希望删除不需要的引用,我们可以使用默认方法 clear()remove()

我们可以使用默认方法来构造和传输对象引用,同时使用相同的对象发送器和事件处理程序机制。我们可以生成两个不同的事件,通过它们的实例调用它们,并生成显示在输出控制台上的每个实例。

为了正确使用对象发送者,存在一些规则和规定。下面还提到了最佳实践。

  • 如果对象发送者包含带有实例的 EventArgs,则只会执行对象发送者的用户操作。因此,对象发送者必须包含事件 args 作为参数。
  • 在大公司系统中,创建和分配对象需要更长的时间,传输它们的引用也需要更长的时间。
  • 它通过采用同步来避免进程线程中的死锁。所以尽量同步以避免死锁。
  • 创建一个委托对象,其签名与你尝试封装的方法签名精确对应。
  • 定义其签名对应于你在第四步中创建的委托对象的所有过程。
  • 你要封装的方法应该插入到你创建的委托对象中。
  • 使用委托对象调用包含的方法。

C# 的语法和约定可以更复杂地使用代码并避免重复和代码重复,因为它为每组组件提供了许多预定义的关键字、方法和属性。发送者是传递给方法的参数之一,用于它们的类引用和用法,就像那个对象一样。

作者: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn