Action은 .NET에서 제공하는 대리자 타입 중 하나로, 매개 변수가 없고 반환값도 없는 메소드를 참조할 수 있습니다. 하지만, 매개 변수를 받을 수 있는 여러 가지 형태의 Action 대리자 타입도 존재합니다.
매개 변수가 없는 Action
기본적인 Action은 매개 변수가 없는 메소드를 참조하는 대리자입니다.
Action myAction = () => Console.WriteLine("매개 변수가 없는 Action");
myAction(); // 출력: 매개 변수가 없는 Action
여기서 Action은 매개 변수를 받지 않는 함수(즉, 파라미터가 없는 함수)를 참조합니다.
이 함수는 실행할 때 아무런 인자도 필요하지 않습니다.
매개 변수를 받을 수 있는 Action<T>
매개 변수를 받을 수 있는 Action 대리자도 있습니다.
그 예로 **Action<T>**는 1개의 매개 변수를 받는 대리자입니다.
그리고 Action<T1, T2>와 같이 여러 개의 매개 변수를 받을 수 있는 형태도 있습니다.
매개 변수가 하나 있는 Action<T>
Action<int> myAction = (x) => Console.WriteLine($"매개 변수: {x}");
myAction(10); // 출력: 매개 변수: 10
여기서 Action<int>는 정수형 매개 변수를 하나 받는 함수를 참조할 수 있는 대리자입니다.
myAction(10)을 호출할 때, 매개 변수로 10이 전달됩니다.
매개 변수가 두 개 있는 Action<T1, T2>
Action<int, string> myAction = (x, y) => Console.WriteLine($"매개 변수: {x}, {y}");
myAction(10, "Hello"); // 출력: 매개 변수: 10, Hello
여기서 Action<int, string>은 두 개의 매개 변수를 받는 함수를 참조할 수 있습니다.
myAction(10, "Hello")를 호출할 때, 정수 10과 문자열 "Hello"가 매개 변수로 전달됩니다.
Action의 다양한 버전들
* Action
- 매개 변수가 없고, 반환값도 없는 함수 참조.
* Action<T>
- 매개 변수가 하나 있고, 반환값이 없는 함수 참조.
* Action<T1, T2>
- 매개 변수가 두 개 있고, 반환값이 없는 함수 참조.
... 이런 식으로 매개 변수를 최대 16개까지 받을 수 있는 다양한 형태가 제공됩니다.
정리하면...
Action 은 매개 변수가 없는 기본 형태부터 매개 변수를 받을 수 있는 Action<T>, Action<T1, T2>, ... 등 다양한 형태가 존재합니다.
'프로그래밍 > C#' 카테고리의 다른 글
구조체의 new (0) | 2024.11.29 |
---|---|
클로저와 람다 표현식 (0) | 2024.10.19 |
delegate 표현 방식들 (1) | 2024.10.19 |
delegate 와 Action 그리고 Func (0) | 2024.10.19 |
클로저 (Closure) (0) | 2024.10.19 |