기술면접 - 'delegate', 'event', 'action', 'func' 간의 차이를 설명해주세요.
작성자 정보
- 마스터 작성
- 작성일
본문
Q - 'delegate', 'event', 'action', 'func' 간의 차이를 설명해주세요.
A - delegate, event, action, func 매서드를 참조하여 코드를 재사용하는데 사용합니다.
[GPT]
delegate, event, Action, 그리고 Func는 C# 프로그래밍 언어에서 사용되는 중요한 개념들입니다. 이들은 모두 다양한 방식으로 메서드를 참조하고, 코드의 유연성과 재사용성을 높이는 데 사용됩니다. 각각의 차이점을 이해하는 것은 C#에서 더 효과적인 프로그래밍을 하는 데 도움이 됩니다.
delegate
delegate는 C#에서 메서드에 대한 참조를 표현하는 타입입니다. 이를 사용하여 메서드를 변수에 할당하고, 메서드를 매개변수로 전달하며, 메서드를 반환 값으로 사용할 수 있습니다. delegate는 특정 시그니처(매개변수와 반환 타입)를 가진 메서드만 참조할 수 있으며, 이를 통해 타입 안전성을 보장합니다.
event
event는 delegate를 기반으로 하며, 이벤트 구독자(subscriber)와 이벤트 발행자(publisher) 사이의 계약을 정의하는 데 사용됩니다. 이벤트는 클래스 또는 객체가 특정 조건에서 다른 클래스 또는 객체에 알림을 보낼 수 있는 방법을 제공합니다. event는 클래스 외부에서 직접 호출할 수 없으며, 클래스 내부에서만 발생시킬 수 있습니다. 이를 통해 느슨한 결합(loose coupling)을 실현할 수 있습니다.
Action
Action은 매개변수를 가질 수 있지만 반환 값이 없는(void 반환 타입) 메서드를 참조하기 위한 delegate입니다. .NET에서 제공하는 제네릭 대리자 타입 중 하나로, 최대 16개의 매개변수를 가질 수 있습니다. Action을 사용하면 별도의 delegate 선언 없이 메서드 참조를 간편하게 할 수 있습니다.
Func
Func 역시 .NET에서 제공하는 제네릭 대리자 타입 중 하나입니다. Func는 매개변수를 가질 수 있으며, 반환 값이 있는 메서드를 참조하기 위해 사용됩니다. Func의 마지막 타입 매개변수는 항상 메서드의 반환 타입을 지정합니다. Func 역시 최대 16개의 매개변수를 가질 수 있으며, Action과 마찬가지로 편리성을 제공합니다.
요약
delegate: 메서드 참조를 위한 타입으로, 타입 안전성을 제공합니다.
event: delegate를 기반으로 하는 이벤트 구독/발행 메커니즘을 제공합니다.
Action: 반환 값이 없는 메서드를 참조하기 위한 delegate입니다. 간편하게 사용할 수 있습니다.
Func: 반환 값이 있는 메서드를 참조하기 위한 delegate입니다. Action과 비슷하게 사용 편의성을 제공합니다.
이들 개념은 C#에서 메서드 참조와 이벤트 처리를 다루는 데 매우 중요하며, 각각의 사용 상황과 특성을 이해하는 것이 중요합니다.
관련자료
-
이전
-
다음