lierre

c# 콜백 예제

이벤트를 만들고 시작하는 간단한 예제가 있습니다. 난수가 생성됩니다....

02 Août

이벤트를 만들고 시작하는 간단한 예제가 있습니다. 난수가 생성됩니다. 숫자가 5와 같으면 FiveEvent 이벤트가 생성됩니다. 다음 절차 및 예제에서는 플랫폼 호출을 사용하여 관리되는 응용 프로그램이 로컬 컴퓨터의 각 창에 대한 핸들 값을 인쇄하는 방법을 보여 줍니다. 특히 절차 및 예제에서는 EnumWindows 함수를 사용하여 창 목록과 관리되는 콜백 함수(콜백)를 단계별로 단계별로 사용하여 창 핸들의 값을 인쇄합니다. 함수에는 서로 다른 데이터 형식의 하나 이상의 매개 변수가 있을 수 있지만 함수 자체를 매개 변수로 전달하려면 어떻게 해야 합니까? C#는 콜백 함수 또는 이벤트 처리기를 어떻게 처리합니까? 대답은 – 대리자입니다. 이것이 대리자의 기본 구문에 있습니다. 이제 전체 예제 응용 프로그램을 살펴보겠습니다: – 예제에서는 하나의 대리자가 있습니다. 이 대리자는 Person 클래스의 두 메서드를 가리키는 데 사용됩니다. 메서드는 대리자를 사용 하 고 호출 됩니다.

이렇게 하려면 대리자를 새로 지정하여 대리자와 동일한 시그니처를 가지는 메서드 이름을 전달합니다. 위의 예에서 int 형식 매개 변수를 허용하고 void를 반환하는 Print 대리자를 선언했습니다. Main() 메서드에서 인쇄 형식의 변수가 선언되고 PrintNumber 메서드 이름이 할당됩니다. 이제 인쇄 대리자를 호출하면 PrintNumber 메서드가 차례로 호출됩니다. 같은 방법으로 인쇄 대리자 변수가 PrintMoney 메서드에 할당된 경우 PrintMoney 메서드를 호출합니다. 한 매개 변수를 사용하는 작업 대리자를 사용하도록 이전 예제를 수정합니다. 위에 표시된 인쇄 대리자는 Print로 선언된 동일한 반환 유형 및 매개 변수가 있는 메서드를 가리키는 데 사용할 수 있습니다. 인쇄 대리자를 선언하고 사용하는 다음 예제를 고려합니다. 대리자를 사용하는 방법을 보여주는 몇 가지 간단한 예제가 있습니다. 위의 예에서 PrintHelper 메서드는 Print 형식의 대리자 매개 변수를 가지고 있으며 함수:delegateFunc(numToPrint)처럼 호출합니다.

모두 모두, 그들은 C ++에서 인터페이스 기반 콜백과 동일한 일을 하지만 함수의 이름을 지정 하거나 도우미 개체를 만드는 것에 대해 걱정할 필요가 없기 때문에 조금 덜 문제가 발생 하 고 어떤 방법에서 대리자를 만들 수 있습니다. 그들은 더 유연합니다. 예를 들어 함수 목록을 하나씩 호출하는 단일 대리자를 만들 수 있습니다. 자세한 내용은 이 MSDN 문서를 참조하십시오. 작업 대리자의 유형에는 여러 가지가 있습니다. 예를 들어 Action 대리자는 단일 매개 변수를 사용 하 고 값을 반환 하지 않는 메서드를 캡슐화 합니다. 콜백 함수는 일반적으로 0이 아닌 값을 반환하여 성공을 나타내고 0은 실패를 나타냅니다. 이 예제는 열거를 계속하기 위해 반환 값을 true로 명시적으로 설정합니다. Microsoft Windows용 프로그래밍에 광범위하게 사용되는 콜백 메서드는 함수 포인터를 다른 함수에 전달해야 할 때 사용되며 전달된 포인터를 통해 다시 호출합니다. 예를 들어 Win32 API EnumWindows 함수가 있습니다.