* 델리게이터
0. 메서드를 변수로 사용하는 개념(메서드를 대신 호출해준다. 메서드의 대리인)
1. 일종의 클래스를 선언하는 것과 같다.
delegate noid TestDelegate(); //자료형 선언
TestDelegate testDelegate = <메서드 이름, 무명 델리게이터, 람다> //델리게이터 변수를 초기화
* 무명 델리게이터
0. 델리게이터와 같은 기능을 수행하지만 메서드를 따로 선언하지 않고도 정렬 방법을 정의한다.
delegate(<매개변수>, <매개변수>)
{
/* 코드 */
return /* 반환 */;
}
* 람다
0. 매개변수의 자료형을 지정할 필요도 없이 사용한다.
(<매개변수>, <매개변수>) => {
/* 코드 */
return /* 반환 */;
}
1. 만약 입력할 코드가 없고 반환만 한다면 더 짧게도 구현 가능하다.
(a, b) => /* 반환 */
products.Sort((a, b) => a.Price.CompareTo(b.Price));
* 델리게이터 선언
0. 이름있는 델리게이터는 특정한 형식을 가진 메서드를 자료형으로 선언
[접근 제한자] delegate [반환형] [델리게이터 이름]([매개변수]);
1. 델리게이터는 자료형이므로 클래스를 선언하는 위치와 같은 위치라면 어디든지 선언 가능하다.
2. 델리게이터는 클래스 외부에서도 선언 가능하다.
* 델리게이터 초기화
0. 메서드 이름을 사용한 초기화
TestDelegate delegateA = TestMethod;
1. 무명 델리게이터를 사용한 초기화
TestDelegate delegateB = delegate(){};
2. 람다를 이용한 초기화
TestDelegate delegateC = () => {};
3. 초기화한 델리게이터들은 일반 메서드처럼 호출해서 사용할 수 있다.
delegateA();
delegateB();
delegateC();
* 델리게이터 활용
0. 델리게이터를 활용하는 대표적인 형태는 콜백 메서드(Callback Method)이다.
1. 콜백 메서드는 매개변수로 전달하는 메서드이다.
'개발 > 기타' 카테고리의 다른 글
[Github] Visual Studio Code 연동하기 (4) | 2016.11.07 |
---|---|
[Github] SSH key 등록 및 커밋 (2) | 2016.11.07 |
[C#] 인터페이스(interface) (2) | 2016.06.07 |
[C#] 제네릭(Generic)과 구조체(Struct) (2) | 2016.06.05 |
[C#] 상속과 다형성 (2) | 2016.06.05 |
댓글