c delegate tutorial how instantiate
이 자습서에서는 간단한 코드 예제를 사용하여 C # 대리인을 사용하는 방법을 설명합니다. C #의 멀티 캐스트 대리자에 대해서도 알아 봅니다.
C # 대리인이란 무엇입니까?
C #에서 대리자는 C ++에서 사용할 수있는 포인터와 유사합니다. 기본적으로 다른 메서드에 대한 참조를 포함하는 참조 유형 변수입니다.
또한 런타임 동안 참조를 변경할 수 없습니다. System.Delegate 클래스 내에서 사용할 수 있습니다. 대리자는 콜백 함수 또는 이벤트 처리기를 처리하는 데 사용됩니다.
함수에 대한 포인터와 같으며 키워드 delegate 뒤에 함수 시그니처를 사용하여 선언 할 수 있습니다.
대리자의 선언은 또한 대리자가 참조 할 수있는 메서드를 결정합니다. 즉 대리자와 동일한 서명을 가진 참조 메서드 일 수 있습니다.
학습 내용 :
C #에서 대리인 인스턴스화
대리자가 선언되면 new 키워드로 인스턴스화 한 다음 메서드와 연결해야합니다. 메소드와 마찬가지로 표현식은 인수를 전달해야합니다.
대리인 호출
대리자는 메서드처럼 호출 할 수 있습니다.
예:
class Program { public delegate void methodDelegate(); public static void Main(string() args) { methodDelegate md = new methodDelegate(method); md.Invoke(); } public static void method() { Console.WriteLine('Delegate pointing to method'); } }
산출
위 프로그램의 출력은 다음과 같습니다.
메서드를 가리키는 위임
설명
답변 pdf와 오라클 SQL 쿼리 예제
위의 프로그램에서 우리는 델리게이트의 객체를 생성하고 호출해야하는 메소드를 가리 켰습니다. 그런 다음 invoke ()를 사용하여 'delegate'를 사용하여 메서드를 호출했습니다.
C # Delegate를 사용해야하는 이유는 무엇입니까?
메인 메서드에서 직접 메서드를 호출 할 수 있었지만 왜 대리자를 사용해야합니까?
간단한 언어로 대표는 두 그룹 간의 의사 소통을위한 대표를 의미합니다. 프로그래밍 컨텍스트에서도 비슷한 역할을합니다. 콜백에 사용됩니다.
장기 실행 방법이 있고 실행 진행 상황을 지속적으로 확인해야한다고 가정 해 보겠습니다. 이를 위해 델리게이트를 사용하여 콜백을 사용합니다. 이를 통해 장기 실행 방법을 추적 할 수 있습니다.
예를 들면 :
public class Program { One on = new One(); public static void Main(string() args) { One.generateNumbers(callDelegate); Console.ReadLine(); } public static void callDelegate(int j) { Console.WriteLine('The current random number is :' + j); } } public class One { public delegate void callingDelegate(int j); public static void generateNumbers(callingDelegate cd) { Random rn = new Random(); int i = 0; int j = 0; while (i <10) { j = rn.Next(9999); cd(j); i++; } } }
위 프로그램의 출력은 다음과 같습니다.
산출
현재 난수는 : 1559입니다.
현재 난수 : 6127
현재 난수는 다음과 같습니다.
현재 난수는 : 3963입니다.
현재 난수는 : 4479입니다.
현재 난수는 : 6898입니다.
현재 난수 : 1390
현재 난수는 : 6409입니다.
현재 난수 : 2629
현재 난수는 : 5464입니다.
위의 프로그램에서 우리는 주어진 반복에 대해 임의의 정수를 생성하는“generateNumber”메소드에서 콜백을 얻기 위해 델리게이트를 사용했습니다. 이 반복은 엄청날 수 있습니다. 따라서 여기에서 대리자는 메서드에서 임의의 정수가 생성 될 때마다 콜백을받는 데 사용됩니다.
Windows에서 바이너리 파일을 여는 방법
C #에서 멀티 캐스트 대리인이란 무엇입니까?
대리자는 여러 가지 방법을 가리킬 수 있습니다. 여러 다른 메서드를 가리키는 대리자를 멀티 캐스트 대리자라고합니다. '+'기호 (연산자)는 델리게이트에 기능을 추가하는 데 사용되고 '-'기호 (연산자)는 델리게이트에 연결된 기존 기능을 제거하는 데 사용됩니다.
멀티 캐스트 델리게이트는 자신이 가리키는 함수를 호출하며 동일한 유형의 함수 만 결합하여 멀티 캐스트 델리게이트를 구성 할 수 있습니다. 단일 대리자를 호출하여 호출해야하는 메서드 목록을 만드는 데 사용할 수 있습니다.
이를 이해하기위한 간단한 프로그램을 살펴 보겠습니다.
프로그램
public class Program { delegate void IntegerCounter(int n); public static void method_A(int a) { a = a + 5; Console.WriteLine('the value of first method {0}', a); } public static void method_B(int b) { b = b * 5; Console.WriteLine('the value of second method {0}', b); } public static void Main(string() args) { //creating instance of the delegate IntegerCounter x; IntegerCounter y = new IntegerCounter(method_A); IntegerCounter z = new IntegerCounter(method_B); x = y; x += z; x(10); Console.ReadLine(); } }
산출
첫 번째 방법 5의 값
두 번째 방법 50의 값
위의 프로그램에서 우리는 IntegerCounter 대리자를 선언했습니다. 그런 다음 정수 값에 대해 특정 작업을 수행하는 두 가지 다른 메서드를 만들었습니다. 그런 다음 메인 메서드에서 정의 된 두 메서드 모두에 대한 대리자를 초기화했습니다.
그런 다음 먼저 대리자 개체를 사용하여 초기화 된 첫 번째 대리자 메서드를 가리키고 그 후에 '+'기호를 사용하여 대리자를 멀티 캐스트하고 다른 메서드를 가리 킵니다. 그런 다음 정수 매개 변수를 전달하면 두 메소드 모두 동일한 매개 변수를 수신하고 실행됩니다.
결론
델리게이트는 함수에 대한 포인터입니다. 대리자를 사용할 메서드는 동일한 매개 변수와 반환 형식을 가져야합니다.
대리자는 함수와 유사하게 선언 할 수 있으며 유사하게 호출 할 수도 있습니다. 멀티 캐스트 델리게이트는 델리게이트를 사용하여 여러 메서드를 가리키고 더하기 '+'연산자를 사용하여 멀티 캐스트를 사용하는 경우입니다.
=> 여기에서 전체 C # 교육 자습서 시리즈 살펴보기
추천 도서
- 로그로 Selenium 스크립트 디버깅 (Log4j 튜토리얼) – Selenium 튜토리얼 # 26
- 효율적인 Selenium 스크립팅 및 문제 해결 시나리오 – Selenium 자습서 # 27
- 첫 번째 WebDriver 스크립트 구현 – Selenium WebDriver Tutorial # 10
- Eclipse로 WebDriver 전체 설정 및 설치 – Selenium Tutorial # 9
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- Generics 및 Testsuite 생성 – Selenium Tutorial # 22
- SoapUI Groovy 스크립트에서 예외를 처리하는 방법 – SoapUI Tutorial # 11
- Selenium을 통해 원격으로 TestLink 테스트 케이스 실행 상태를 업데이트하는 방법 – 튜토리얼 # 3