C#에서 개체 발신자 사용

Saad Aslam 2023년10월12일
  1. C#의 Object Sender 개요
  2. 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#에는 각 구성 요소 집합에 대해 미리 정의된 키워드, 메서드 및 특성이 많기 때문에 코드를 더 복잡하게 사용하고 중복 및 코드 반복을 피하기 위한 구문과 규칙이 있습니다. 발신자는 해당 객체와 마찬가지로 클래스 참조 및 사용법을 위해 메서드에 전달되는 인수 중 하나입니다.

작가: 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