2011-02-03 3 views

답변

0

대표는 C/C++의 포인터를 함수와 유사하지만 클래스 유형 및 원시없는 유형입니다. 델리게이트의 기본 사용은 콜백 또는 비동기 메서드를 수행하거나 런타임에 다른 메서드를 전달하는 것입니다. (로직 대체)

비동기 콜백을 수행하는 예제. 여러 스레드가 실행 중일 때 더 적합합니다.

공개 MyClass 클래스 {

Public 대리자 공극 CallBackDelegate (INT 결과); public void CallsBack (CallBackDelegate callBack) { // 여기에 코드를 입력하십시오. 유용한 기능이 있습니다. callBack (result); }

}

공용 클래스 DelegateExample { // 여기에 좀 더 유용한 코드 무효 ExampleMethod() { // 더 많은 코드 MyClass에 MyClass에 = 새로운 MyClass에(); myclass.CallsBack (CallMeBack); // 작업을 계속하고 콜백을 기다리지 마십시오. } 무효 CallMeBack (INT 결과) { // 이것은 매우 일반적인 질문이지만, 대의원 및 이벤트의 전형적인 사용은 GUI 라이브러리에있을 것 } }

0

유용한 뭔가. 예를 들어 응용 프로그램에서 버튼을 클릭하거나 필드에서 값이 변경 될 때 발생하는 이벤트를 설정할 수 있습니다. 개발자는 대리자를 사용하여 해당 함수 중 하나를 지정하여 해당 함수에 대한 응답으로 호출 할 수 있습니다 버튼을 클릭하거나 변경된 데이터에 대한 유효성 검사를 수행합니다.

2

참석자는 이벤트와 함께 작업 할 때 중요하므로 중요하지 않습니다.

F1에서 winform F1..A 함수를 사용하면 다른 폼 F2가 열립니다. F2 내의 사용자 활동을 기반으로 F1 내의 기능을 실행해야한다면 반드시 델리게이트와 이벤트를 사용해야합니다.

1) 대리자 형식은 (서명이 첨부 할 계획 핸들러) 2) F2는 대리자 형식 3의 클래스 멤버와 같은 이벤트가 필요합니다과 일치해야합니다)가 만든 것처럼 선언되어야한다 F1에서 F2의 인스턴스 인 경우 이벤트 처리기를 연결하십시오 (+ = 사용)

관련 문제