C#의 Action과 Func의 차이는 무엇인가요?
_____A1: Action은 반환 값이 없는 메서드를 참조할 때 사용하는 델리게이트이고, Func는 반환 값이 있는 메서드를 참조할 때 사용하는 델리게이트입니다.
---
Q2: Action 델리게이트의 시그니처는 어떻게 되나요?
A2: Action 델리게이트는 0개부터 16개까지의 입력 매개변수를 받을 수 있으며, 반환 타입은 항상 void입니다. 예를 들어:
- `Action` : 매개변수 없이 void 반환
- `Action
- `Action
---
Q3: Func 델리게이트의 시그니처는 어떻게 되나요?
A3: Func 델리게이트는 0개부터 16개까지의 입력 매개변수를 받을 수 있으며, 마지막 타입 인자가 반환 타입을 나타냅니다. 예를 들어:
- `Func
- `Func
- `Func
---
Q4: Action과 Func를 주로 언제 사용하나요?
A4:
- Action은 작업 실행, 이벤트 핸들러, 콜백 등 반환값이 필요 없는 메서드를 참조할 때 사용합니다.
- Func는 계산, 변환, 조건 판단처럼 결과값이 필요한 메서드를 참조할 때 사용합니다.
---
Q5: Action과 Func는 delegate와 어떻게 다른가요?
A5: Action과 Func는 미리 정의된 제네릭 delegate 타입입니다. 직접 delegate를 선언하여 사용할 수 있지만, Action과 Func를 이용하면 코드가 간결해지고 재사용성이 높아집니다.
---
Q6: Action과 Func의 매개변수 개수 제한이 있나요?
A6: 네, 둘 다 최대 16개의 매개변수를 받을 수 있습니다. 이 이상 필요하면 직접 delegate를 선언하거나 다른 설계를 고려해야 합니다.
---
Q7: Action과 Func를 람다식과 함께 사용하는 예는?
A7:
- Action 예: `Action
- Func 예: `Func
---
요약:
| 구분 | 매개변수 | 반환형 | 주요 용도 | 예시 |
|------------|-----------------|---------------|------------------------|---------------------------|
| Action | 0~16개 | void | 반환값 없는 메서드 참조 | `Action
| Func | 0~16개 (최종 인자 제외) | 최종 타입 반환 | 반환값 있는 메서드 참조 | `Func
그러나 이 두 가지는 사용 목적과 반환 값의 유무에 따라 차이가 있습니다.
아래에서 이 두 개념을 자세히 설명하겠습니다.
Action `Action`은 반환 값이 없는 메서드를 나타내는 델리게이트입니다.
즉, `Action`은 메서드가 실행된 후 아무것도 반환하지 않는 경우에 사용됩니다.
`Action`은 최대 16개의 매개변수를 가질 수 있으며, 매개변수의 타입은 다양하게 지정할 수 있습니다.
사용 예시 ```csharp using System; class Program { static void Main() { // 매개변수가 없는 Action Action greet = () => Console.WriteLine("Hello, World!"); greet(); // "Hello, World!" 출력 // 매개변수가 있는 Action Action
10); // 15 출력 } } ``` Func `Func`는 반환 값이 있는 메서드를 나타내는 델리게이트입니다.
`Func`는 최소 1개의 매개변수를 가질 수 있으며, 마지막 매개변수는 반환 값의 타입을 지정합니다.
`Func`는 최대 16개의 매개변수를 가질 수 있습니다.
사용 예시 ```csharp using System; class Program { static void Main() { // 매개변수가 없는 Func Func
10); Console.WriteLine(result); // 15 출력 // 문자열을 정수로 변환하는 Func Func
메서드가 작업을 수행하지만 결과를 반환하지 않을 때 사용합니다.
- `Func`: 반환 값이 있습니다.
메서드가 작업을 수행하고 결과를 반환할 때 사용합니다.
2. 사용 용도 : - `Action`: 주로 이벤트 핸들러, 콜백 메서드, 또는 특정 작업을 수행하는 데 사용됩니다.
- `Func`: 계산이나 변환 작업을 수행하고 결과를 반환해야 할 때 사용됩니다.
3. 매개변수 수 : - `Action`: 0개에서 16개까지의 매개변수를 가질 수 있습니다.
- `Func`: 1개에서 16개까지의 매개변수를 가질 수 있으며, 마지막 매개변수는 반환 값의 타입을 나타냅니다.
결론 C 에서 `Action`과 `Func`는 메서드를 참조하고 전달하는 데 유용한 도구입니다.
`Action`은 반환 값이 없는 작업을 수행할 때, `Func`는 결과를 반환하는 작업을 수행할 때 사용됩니다.
이 두 가지를 적절히 활용하면 코드의 가독성과 재사용성을 높일 수 있습니다.
작성자:
정하영 [비회원]
| 작성일자: 1년 전
2024-09-09 08:38:59
조회수: 167 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 167 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.