delegate c# 예제

Click 이벤트는 이미 Button 클래스에 속해 있으며 대리자를 등록할 때 참조하기만 하면 됩니다. 마찬가지로 EventHandler 대리자는 .NET Frameworks 클래스 라이브러리의 시스템 네임스페이스에 이미 있습니다. 누군가가 나를 클릭 버튼을 누를 때 호출되는 콜백 메서드 (대리자 처리기 메서드)를 정의하기만하면됩니다. 아래 표시된 OnClickMeClicked()메서드는 .NET Framework 클래스 라이브러리 참조에서 조회할 수 있는 EventHandler 대리자의 서명을 준수합니다. 대리자를 사용하는 데는 세 단계가 있습니다. 여기에는 선언, 인스턴스화 및 호출이 포함됩니다. 대리자는 C 및 C++의 함수 포인터와 유사하게 메서드를 안전하게 캡슐화하는 형식입니다. C 함수 포인터와 달리 대리자는 개체 지향, 형식 안전 및 보안입니다. 대리자의 형식은 대리자의 이름으로 정의됩니다.

다음 예제에서는 문자열을 인수로 사용하고 void를 반환하는 메서드를 캡슐화 할 수있는 Del이라는 대리자를 선언합니다. 위의 예에서는 두 개의 정수 매개 변수를 취하고 형식을 void로 반환하는 method1 및 method2라는 두 가지 메서드가 정의되어 있음을 알 수 있습니다. return_type: 대리자가 호출할 메서드에서 반환되는 값의 형식입니다. 무효화될 수 있습니다. 메서드는 대리자와 동일한 반환 형식을 가져야 합니다. 대리자 형식은 .NET Framework의 대리자 클래스에서 파생됩니다. 대리자 형식은 봉인되어 파생될 수 없으며 대리자에서 사용자 지정 클래스를 파생할 수 없습니다. 인스턴스화 된 대리자는 개체이므로 매개 변수로 전달되거나 속성에 할당될 수 있습니다. 이렇게 하면 메서드가 대리자를 매개 변수로 받아들이고 나중에 대리자를 호출할 수 있습니다. 이를 비동기 콜백이라고 하며 긴 프로세스가 완료되면 호출자에게 알리는 일반적인 방법입니다. 이러한 방식으로 대리자를 사용하는 경우 대리자를 사용하는 코드는 사용 중인 메서드의 구현에 대한 지식이 필요하지 않습니다.

기능은 캡슐화 인터페이스가 제공하는 것과 유사합니다. 이 문서에서는 간단한 예제를 사용하여 C#의 대리자를 이해하는 데 도움이 됩니다. 이 기사에 대한 질문이 있으면 arul_tony@yahoo.com 연락할 수 있습니다. 위의 예에서 볼 수 있듯이 인쇄 대리자는 PrintNumber, PrintMoney 및 PrintHexadecimal이라는 세 가지 방법을 가리키기 때문에 다중 캐스트 대리자가 됩니다. 따라서 printDel을 호출하면 모든 메서드가 순차적으로 호출됩니다. 시스템 사용; 네임 스페이스 Akadia.BasicDelegate { // 선언 공개 대리자 void SimpleDelegate (); 클래스 TestDelegate {공개 정적 보이드 MyFunc() { Console.WriteLine (“나는 대리자에 의해 호출되었다…”); public 정적 void Main() { // 인스턴스화 단순 대리자 = 새 단순 대리자 (MyFunc); // 호출 단순 Delegate(); } } 다음 문은 대리자를 선언하는 방법을 보여 주며,