
델리게이트는 메소드를 참조하기 위한 기법이다.
함수의 인자로 메소드함수를 넘길 때 사용한다.
이벤트와 스레드를 처리하는데 주로 사용된다.
[modifiers] delegate 반환타입 델리네임(매개변수);
사용방법
Del method = new Del(Mehtod);
Del method = Mehtod;
익명메서드
Del mehtod = delegate(int a, int b) { return a*b;
람다식
Del add = (int a, int b) => return a*b;
Del add = (int a, int b) => {return a*b;}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | using System; namespace CSStudy_delegate2 { delegate void MultiDelegate(); //대리인정의 class Program { static void Main(string[] args) { //DEL인스턴스 DelegateClass del = new DelegateClass(); MultiDelegate dg1, dg2, dg3; //멀티대리인의 변수3개생성 //dele변수에 다른 클래스의 메소드를 각각 넣음. dg1 = new MultiDelegate(del.MehtodA); dg2 = new MultiDelegate(del.MehtodB); dg3 = new MultiDelegate(del.MehtodC); dg1 = dg1 + dg2; //dele 변수끼리 +하면 순서. dg1 += dg3; dg2 = dg1 - dg2; Console.WriteLine("dg1 호출"); dg1(); Console.WriteLine("dg2 호출"); dg2(); Console.WriteLine("dg3 호출"); dg3(); } } class DelegateClass { public void MehtodA() //메소드a { Console.WriteLine("deleClass Method A"); } public void MehtodB() { Console.WriteLine("deleClass Method B"); } public void MehtodC() { Console.WriteLine("deleClass Method C"); } } } | cs |
'C# > C# Concept' 카테고리의 다른 글
[C#] abstract 클래스 , abstract 메소드 (0) | 2018.03.19 |
---|---|
[C#] 섀도잉 하이딩 ( shadowing , hidding) (0) | 2018.03.19 |
[C#] 오버라이드 (0) | 2018.03.16 |
[C#] 상속 (0) | 2018.03.16 |
[C#] 구조체 (0) | 2018.03.16 |