반응형 델리게이트3 Effective C# Item 7 : 델리게이트를 이용하여 콜백을 표현하라 콜백(CallBack)이란? 프로그래머는 함수를 호출할 때 콜(Call)을 하여 호출한다. 콜백(CallBack)은 콜의 반대되는 개념으로 함수가 언제 실행될지에 대한 권한을 전적으로 위임한다. 기능만을 구현한 채 전달하고 언제 실행될지는 모른다. C#은 이러한 콜백 함수를 구현하기 위해 Delegate 문법을 제공한다. 델리게이트를 이용하여 콜백을 표현하라 콜백은 서버가 클라이언트에게 비동기적으로 피드백을 주기 위해서 주로 사용하는 방법이다. 이를 위해 멀티스레딩 기술도 사용되고, 동기적으로 상태를 갱신하는 기법도 활용된다. 콜백은 C#에서 델리게이트를 이용하여 표현된다. 델리게이트를 이용하면 타입 안정적인 콜백을 정의할 수 있다. 대부분의 경우에 델리게이트는 event와 함께 사용되지만 반드시 그래야.. 2023. 9. 26. C# 이벤트(Event)에 대해서 알아보자 이벤트(Event)란? C#에서 모든 이벤트(event)는 특수한 형태의 delegate이다. 이벤트는 특수한 제약조건이 추가된 delegate라고 생각하면 이해하기 편하다. 이벤트의 추가(+=) 및 제거(-=)만 가능하다. 할당이 불가능하다.(= 으로 이벤트 할당 불가) 클래스 외부에서 직접 이벤트를 호출할 수 없다. namespace System { // // 요약: // Represents the method that will handle an event that has no event data. // // 매개 변수: // sender: // The source of the event. // // e: // An object that contains no event data. public dele.. 2023. 4. 5. C# 대리자(Delegate)에 대해서 대리자(Delegate)란? 특정 매개 변수 목록과 반환 형식이 있는 매서드에 대한 참조를 나타내는 형식 대리자를 인스턴스화할 때 호환되는 매개변수 및 반환 형식을 가지는 모든 메서드와 연결할 수 있다. 대리자(Delegate)의 속성 대리자는 C++ 함수 포인터와 유사하지만 C++ 함수 포인터와 달리 멤버 함수에 대해 완전히 객체 지향이다. delegate는 인스턴스 및 메서드를 모두 캡슐화한다. 대리자를 통해 메서드를 매개 변수로 전달할 수 있다. 대리자를 사용하여 콜백 메서드를 정의할 수 있다. 여러 대리자를 연결할 수 있다. 예를 들어 단일 이벤트에 대해 여러 메서드를 호출 할 수 있따. 메서드는 대리자 형식과 정확히 일치하지 않아도 된다. 자세한 내용은 대리자의 가변성 사용을 참조 람다 식은 인.. 2023. 3. 13. 이전 1 다음