면접질문

기술면접 - '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#에서 메서드 참조와 이벤트 처리를 다루는 데 매우 중요하며, 각각의 사용 상황과 특성을 이해하는 것이 중요합니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

최근글


새댓글


알림 0