[Unity]/[C#]

[C#] Action과 Func

극꼼 2022. 9. 26. 20:10
반응형


<delegate>

: 메서드를 매개변수로 전달하는 기법. delegate에는 action, func, predicate 대리자가 있으며, 이번 포스팅에서는 action과 func의 사용 예시만 다뤄보려 합니다.

 

* 이전 delegate vs event 포스팅 : 

https://geukggom.tistory.com/210

 

[C#] delegate와 event의 차이

1. delegate 2. event 3. delegate와 event의 차이점 1. delegate : delegate는 하나의 형식(type)으로, 메서드에 대한 참조입니다. delegate는 인스턴스 메서드, 정적메서드 모두 참조 가능합니다. delegate는..

geukggom.tistory.com

 


<Action, Func>

* 둘 다 입력 매개 변수의 개수가 0~16개까지 가능.

* Action은 리턴값이 없고, Func은 있음.

 

* Action 사용 예시

public static void ActionRun()
{
    Action<string> act = Output;
    act("출력");
}
private static void Output(string s)
{
    Console.WriteLine(s);
}

 

* Func 사용 예시

  1) 입력값이 없을 때

private static int _state = 0; 
static bool IsValid()
{
    return _state == 0;
}
public static void FuncRun1()
{
    Func<bool> f = IsValid;
    Console.WriteLine(f());
}

  2) 입력값이 있을 때

static bool IsValidRange(int n)
{
    return n > 0;
}

public static void FuncRun2()
{
    //Func<입력 매개변수들 위치, bool>
    Func<int, bool> f = IsValidRange;
    Console.WriteLine(f(10));
}

 

 

반응형

'[Unity] > [C#]' 카테고리의 다른 글

[C#] 메서드 매개 변수 : params, in, ref, out  (0) 2022.09.28
[C#] Tuple(튜플) 형식  (0) 2022.09.27
[C#] 비동기 메서드(async, await)  (0) 2022.09.21
[C#] ConditionalAttribute  (0) 2022.09.20
[C#] MethodImpl (feat.인라인 함수)  (0) 2022.09.19