37. 델리게이트를 통한 이벤트 처리
·
💻 Programming Language/C#
이벤트 : 특정한 일이 일어났음을 알려주는 기능 C# 에서는 이벤트를 델리게이트(delegate)와 함께 사용한다. event 키워드를 이용하여 표시한다. 이벤트 선언과 사용 순서 1. delegate를 선언 2. 선언된 delegate에 event 키워드를 붙여준다. 3. event handler를 작성한다. 선언된 delegate의 프로토타입과 동일하게 메소드를 작성. => 이때 event handler는 delegate 선언시에 프로토타입과 동일한 메소드형태로 작성한다. 4. 클래스의 인스턴스를 생성하고, 이 객체에 이벤트 핸들러를 등록 5. 이벤트가 발생하면 이벤트 핸들러 호출 using System.Collections; namespace EventEx { delegate void EventHa..
36. 익명메소드
·
💻 Programming Language/C#
익명메소드(Anonymous Method) : 이름이 없는 메소드 선언형식 델리게이트 인스턴스명 = delegate(매개변수) { 실행코드 ... } 사용 예제 코드 using System.Collections; namespace AnonymousMethodEx { delegate int CalDelegate(int x, int y); class Program { static void Main(string[] args) { CalDelegate cd; cd = delegate (int x, int y) { return x * y; }; // => 익명메소드 형태 (이름이 없음) // 단 대리자의 형식과 같은 형식을 써야한다. // 고려해야 할 형식은 반환타입, 인자타입, 인자수가 있다. Console.W..
35. 델리게이트 체인(delegate chain)
·
💻 Programming Language/C#
델리게이트 체인(delegate chain) : 델리게이트 하나가 여러개의 메소드를 동시에 참조하는 것. 사용 예제 코드 using System.Collections; namespace DelegateEx { delegate void CalDelegate(int x , int y); class Program { static void Add(int x, int y) { Console.WriteLine(x + y); } static void Sub(int x, int y) { Console.WriteLine(x - y); } static void Mul(int x, int y) { Console.WriteLine(x * y); } static void Div(int x, int y) { Console.Wri..
34. 제네릭 델리게이트(Generic Delegate) & 콜백함수
·
💻 Programming Language/C#
알면 좋은 지식 - Callback Function(콜백함수) Delegate를 활용한 함수전달은 callback과 같은 개념 callback : A, B, C 메소드가 있을때, A가 B(중간자=Delegate)를 통해서 C에게 전달을 해달라고 했는데, B가 C에게 A에게 연락할 것을 요청하고, C가 다시 A에게 연락을 취한다. 쉽게 말해 A를 C에게 전달하고 싶은데 중간에 delegate가 그 역할을 하고, C는 결과를 A에게 반환한다. using System.Collections; namespace DelegateEx { delegate int CalculationDelegate(int x, int y); class Program { static int Add(int x, int y) { return..
33. 델리게이트(delegate) 사용
·
💻 Programming Language/C#
델리게이트 사용 예제 코드 using System.Collections; namespace DelegateEx { delegate int MyDelegate(int a, int b); class SumSubtract { public int sum(int a, int b) { return a + b; } public static int subtract(int a, int b) // 델리게이트는 static 메소드도 전달할 수 있다. { return a - b; } // 델리게이트(delegate = 대리자)는 해당 메소드들이 저장되어 있는 주소값을 넘겨주는 것이다. } class Program { static void Main(string[] args) { SumSubtract ss = new SumSub..
32. 델리게이트(delegate)의 기본 개념
·
💻 Programming Language/C#
델리게이트(Delegate) : 메소드를 다른 메소드로 전달할 수 있도록 하기 위해서 만들어 진 것. => 델리게이트를 이용해 포장하고 전달.(내가 이해한바로는 .. ㅇㅇ) void AAA(int arg1){ ... } int a = 123; AAA(a); class DemoClass { int id; string name; public int DisplayInfo() {..} } void AAA(DemoClass d){ ... } DemoClass d = new DemoClass(); AAA(d) 위의 코드들은 기존 인자를 통해 객체 혹은 값을 전달하는 방식 메소드를 전달하고 싶을땐 delegate를 사용 void AAA(Mydelegate Method){ ... } int StringToInt(str..
31. 예외필터(Exception Filter)
·
💻 Programming Language/C#
Exception Filter : catch절이 받아들일 예외 객체에 제약사항을 주고 그 사항에 만족하는 경우에 예외 처리를 실행할 수 있도록 하는 기능 catch문 뒤에 when 키워드를 이용. 사용자 정의 예외 클래스 모든 예외 객체는 System.Exception 클래스로부터 파생된다. 사용자 정의 예외 클래스를 만들때도 역시 System.Exception 클래스를 상속받아서 만든다. 사용 예제 코드 using System.Collections; namespace ExceptionEx { // 사용자 정의 예외 클래스 class UserException : Exception { public int ErrorCode { get; set; } } class Program { static void Mai..