💡 3. Event Action & Func
📄 1. Action 대리자
리턴값이없는 프로스저를 캡슐화 하는대리자를 정의한다.
즉, 리턴값이 없는 함수를 대리자 사용하고 싶으면? Action Type을 사용하면 된다.
1). Action 대리자 종류
① Action 대리자는 다음 종류가 있다.
- 리턴도, 매개변수도 없는 대리자
Action _DelegateInstance_
- 매개변수 하나정도 있는 대리자
Action<T type> _DelegateInstance_
- 매개변수 N개 있는 대리자
Action<T1, T2, .... T16> _DelegateInstance_
📄2. Action
1). Action 사용 안했을때,
public delegate void Del(); public static HelloWolrd() { Console.WriteLine("Hello World!"); } public static void Main() { Del delInstance = HelloWorld; delInstance(); }
2). Action 사용했을떄.
public static HelloWolrd() { Console.WriteLine("Hello World!"); } public static void Main() { Action delInstance = HelloWorld; delInstance(); }
3). 익명함수까지 사용했을때.
public static void Main() { Action delInstance = () => Console.WriteLine("Hello World!"); delInstance(); }
📄 3. Func 대리자
리턴값이 있는 프로스저를 캡슐화 하는대리자를 정의한다.
즉, 리턴값이 있는 함수를 대리자 사용하고 싶으면? Func Type을 사용하면 된다.
1). Func 대리자 종류
① Func 대리자는 다음 종류가 있다.
- 매개변수가 없는 대리자
Func<out TResult> _DelegateInstance_
- 매개변수 하나정도 있는 대리자
Action<T type, out TResult> _DelegateInstance_
- 매개변수 N개 있는 대리자
Action<T1, T2, .... T16, out TResult> _DelegateInstance_
📄 4. Func
1). Func 사용 안했을때,
public delegate string Del(); public static string HelloWolrd() { return "Hello World!"; } public static void Main() { Del delInstance = HelloWorld; Console.WriteLine(delInstance); }
2). Action 사용했을떄.
public static string HelloWolrd() { return "Hello World!"; } public static void Main() { Func<string> delInstance = HelloWorld; Console.WriteLine(delInstance); }
3). 익명함수까지 사용했을때.
public static void Main() { Func<string> delInstance = () => {return "Hello World!";} Console.WriteLine(delInstance); }
'Language > C#' 카테고리의 다른 글
| 니앙팽이 - 이벤트(C#) | 5 | UnityEvent (0) | 2023.04.14 |
---|---|
| 니앙팽이 - 이벤트(C#) | 4 | Eventhandler & Event & EventArgs (0) | 2023.02.09 |
| 니앙팽이 - 이벤트(C#) | 2 | 델리게이트(Delegate) (0) | 2023.02.03 |
| 니앙팽이 - 이벤트(C#) | 1 | 가상함수 & 바인딩 (0) | 2023.02.03 |
| 니앙팽이 - 이벤트(C#) | 0 | 이벤트 지향 개발 (0) | 2023.02.03 |