본문 바로가기

카테고리 없음

[C#] Predicate<T> 리턴값이 bool인 delegate

Predicatedelegate

  • Predicate는 입력값이 1개 이고, 리턴값이 반드시 bool인 delegate 이다.
  • Predicate 는 Func<T, bool> 과 같은 형태 입니다.

Predicate 활용법

public void Run()
{
    //기존 메서드 사용
    Predicate<int> DetInteger = DetermineInteger;
    bool result = DetInteger(33);
    Console.WriteLine($"33 정수 인가? {result}");

    //무명메서드 사용
    Predicate<int> DetermineInteger2 = delegate (int val)
    {
        return val > 0;
    };
    Console.WriteLine($"-1 정수 인가? {DetermineInteger2(-1)}");


    //람다식 사용
    Predicate<int> DetermineInteger3 = (val) => val > 0;
    Console.WriteLine($"3 정수 인가? {DetermineInteger3(3)}");

    //일반적으로 Function을 사용(Func)
    Func<int, bool> DetermineInteger4 = (val) => val > 0;
    Console.WriteLine($"-6 정수 인가? {DetermineInteger4(-6)}");
}
private bool DetermineInteger(int val)
{
    return val > 0;
}

결과

33 정수 인가? True
-1 정수 인가? False
3 정수 인가? True
-6 정수 인가? False