C# Action, Predicate, Func 활용 및 LINQ, 함수형 프로그래밍
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

C#에서 Action, Predicate, Func의 이해와 활용

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • C# 개발자 및 LINQ, 이벤트, 함수형 프로그래밍 패턴을 활용하는 프로그래머*
  • 중급 이상의 실무 경험이 있는 개발자에게 유용*

핵심 요약

  • Action: void를 반환하는 메서드를 대표하며, 0~16개의 파라미터를 받을 수 있음
  • Predicate: bool을 반환하는 메서드로, 단일 입력(T)을 기반으로 조건 판단에 사용됨
  • Func: 값을 반환하는 메서드로, 최종 타입 파라미터(TResult)가 반환 타입을 정의함
  • LINQ, 이벤트 처리, 함수형 프로그래밍에서 고객화된 대리자로 사용하여 코드 재사용성 향상 가능

섹션별 세부 요약

1. Action

  • void를 반환하는 메서드를 대표하는 대리자
  • 0~16개의 입력 파라미터를 지원
  • 상태 변경이나 작업 수행에 적합 (예: 이벤트 핸들러)

2. Predicate

  • bool을 반환하는 메서드를 대표
  • 단일 입력(T)을 기반으로 조건 검사 (예: List.Find, Where LINQ 연산자)
  • 필터링, 검증, 상태 판단에 주로 사용

3. Func

  • 특정 값을 반환하는 메서드를 대표
  • 0~16개의 입력 파라미터와 마지막 파라미터가 반환 타입
  • 변환, 계산, 생성 등에서 활용 (예: Select LINQ 연산자)

4. 실무 활용 팁

  • 자주 사용되는 LINQ 연산자(Where, Select, OrderBy)에서 Func/Predicate 사용
  • 고객화 대리자로 사용하여 코드 중복 최소화
  • 람다 표현식과 결합하여 간결한 구문 작성 (예: Func square = x => x * x)

결론

  • Action, Predicate, Func는 C#에서 함수형 프로그래밍 패턴과 LINQ 연산에서 핵심 역할을 수행하며, 코드의 모듈성과 재사용성을 높이는 데 기여함
  • 람다 표현식과 결합하여 간결하고 유연한 코드 구조를 설계할 수 있음