Delegate의 사용

홈 > 공유팁! > 프로그램 관련
프로그램 관련

Delegate의 사용

꽁스짱 0 949

Action, Predicate, Func 등의 Delegate는 .NET Framework에서 많이 사용되는데, 많은 경우 이들 Delegate들은 .NET Framework의 기존 메서드들에서 요구되는 파라미터로 사용되는 경우가 많다. 특히, Predicate는 Array나 List의 메서드들에서 많이 사용되고, Func는 LINQ 에서 많이 사용된다. 아래 예제는 Array.Find() 메서드에서 Predicate을 파라미터로 받아들이는 경우와 LINQ의 Where() 메서드에서 Func를 사용한 예이다.
 

예제

public void Run()
{
    int[] arr = { -10, 20, -30, 4, -5 };
    
    // Predicate의 사용
    //   Array.Find(int[], Predicate<int>)    
    int pos = Array.Find(arr, IsPositive); 

    // LINQ에서 Func의 사용
    //   Where(Func<int, bool> predicate)
    var v = arr.Where(n => n >= 0);
}

bool IsPositive(int i)
{
    return i >= 0;
}

 



아래는 Where()메서드의 IntelliSense를 Capture한 것으로 Func의 프로토타입을 볼 수 있다.

LINQ-Func의 사용 

0 Comments
제목