HOWTO · Csharp

C#에서 개체 발신자 사용

이 기사에서는 Object Sender가 무엇이고 C# 프로그래밍에서 어떻게 사용될 수 있는지 살펴보겠습니다.

이 페이지의 내용

이 문서에서는 개체 발신자가 무엇이며 C#에서 사용되는 방법에 대해 설명합니다.

C#의 Object Sender 개요

C# 응용 프로그램을 개발하고 이벤트를 처리할 때 인수 중 하나는 C# 개체 발신자입니다. 그리고 핸들러가 올바른 개체를 매핑하도록 지시하는 데 사용되는 이벤트에 대해 발생한 개체에 대한 참조를 설정하는 매개변수입니다.

EventArgs 클래스의 도움으로 메서드의 인수를 제공할 수 있습니다. 그러나 정적 매개변수 또는 이벤트의 경우 값은 null이 됩니다. 애플리케이션에서 사용자가 필요로 하는 모든 곳에서 이러한 클래스를 사용하기 위해 EventArgs 클래스와 Object() {[native code]} 함수를 사용하여 개체를 생성합니다.

이러한 클래스는 기본 프레임워크에서 가져옵니다.

C#에서 Object Sender 사용

특정 클래스의 메서드, 키워드 및 변수를 사용하여 해당 클래스에 대한 개체를 생성하려는 경우 개체가 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# 언어에서 일반 개체의 인수 중 하나이며 개체의 인스턴스를 빌드하는 데에도 사용됩니다. 적절한 애플리케이션 이벤트가 이를 트리거합니다.

이벤트 처리기라고 하는 이벤트를 처리하고 객체를 구성하는 메커니즘은 해당 이벤트를 처리하는 데 사용됩니다. 정적 이벤트를 사용하든 매개변수 값은 항상 null입니다. 그러나 값은 정적 또는 동적 키워드를 사용할 때 다릅니다.

이벤트에 연결된 메서드를 이벤트 핸들러라고 합니다. 이벤트 핸들러에 포함된 코드는 이벤트가 발생할 때 실행됩니다.

이벤트를 올바르게 처리할 수 있도록 각 이벤트 핸들러에서 두 개의 매개변수를 제공합니다. 이벤트 핸들러는 클라이언트 요청에 의존하는 객체를 실행하는 주요 방법 중 하나입니다. 그런 다음 애플리케이션 내에서 발생할 특정 이벤트에 대한 응답으로 응답이 시작됩니다.

발신자는 개체 발신자 참조로 인해 이벤트가 트리거되고 완료되기 때문에 이벤트를 시작하는 데 사용할 수 있는 기본 컨트롤 중 하나입니다.

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를 매개변수로 포함해야 합니다.
  • 대기업 시스템에서는 개체를 만들고 할당하는 데 시간이 더 오래 걸리고 참조를 전송하는 데도 더 오래 걸립니다.
  • 동기화를 사용하여 프로세스 스레드의 교착 상태를 방지합니다. 따라서 교착 상태를 피하기 위해 동기화를 시도하십시오.
  • 캡슐화하려는 메서드 서명과 정확히 일치하는 서명을 가진 대리자 개체를 만듭니다.
  • 4단계에서 생성한 대리자 개체의 서명과 일치하는 모든 절차를 정의합니다.
  • 캡슐화하려는 메서드는 생성한 대리자 개체에 연결해야 합니다.
  • 포함된 메서드를 호출하려면 대리자 개체를 사용합니다.

C#에는 각 구성 요소 집합에 대해 미리 정의된 키워드, 메서드 및 특성이 많기 때문에 코드를 더 복잡하게 사용하고 중복 및 코드 반복을 피하기 위한 구문과 규칙이 있습니다. 발신자는 해당 객체와 마찬가지로 클래스 참조 및 사용법을 위해 메서드에 전달되는 인수 중 하나입니다.