39. LINQ 사용해보기
·
💻 Programming Language/C#
LINQ, ORM => SQL문과는 다르게 DB로부터 필요한 데이터를 편리하게 가져옴. LINQ(Language Integrated Query) : C# 언어에 통합된 데이터 질의 기능 using System.Collections; namespace LinqEx { class Member { public string name { get; set; } public int age { get; set; } } class Program { static void Main(string[] args) { Member[] ml = { new Member(){name = "홍길동" , age =23}, new Member(){name = "청길동" , age =24}, new Member(){name = "백길동" , ..
38. 람다식(Lambda Expression)
·
💻 Programming Language/C#
람다식 : 익명 메소드를 만들기 위해 사용하는 식 람다식으로 만들어진 익명 메소드를 무명 함수(Anonymous Function) 라고 한다. 람다식 선언 형식 매개변수 목록 => 식 => 연산자를 입력 연산자라고 한다. delegate int AAA(int x, int y); static void Main(string[] args){ AAA aaa = (int x,int y) => x + y; } (int x, int y) => x + y 라는 익명 메소드가 delegate 인 aaa에 전달되고 있는 모습 위의 코드는 다음과 같이 바꿔서 사용 가능 AAA aaa = (x, y) => x + y; delegate의 인자에 타입이 선언되어 있기에 가능 위의 익명 메소드(무명함수)는 기존에 익명 메소드를 사..
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..