728x90
안녕하세요.
오늘은 어제 포스팅 했던 Action 대리자 다음 포스팅으로써, Func 대리자 사용 방법에 대해서 알려 드리려고 합니다.
Func 대리자는 Action 대리자와 달리 파라미터 값이 있고, 반환값이 있는데요.
[Func 대리자 형태]
Func<out TResult>
Func<in T1, out TResult>
Func<in T1,in T2, out TResult>
Func<in T1,in T2,...in T16, out TResult>
Func 대리자의 형태는 위와 같습니다. Action 대리자와는 다르게 입력값과 반환값이 있는 것을 보셨나요?
제일 오른쪽 끝이 반환값의 타입이고 그 외 파라미터들은 입력 파라미터(매개변수)의 타입들입니다.
그럼 위 형태를 이용해서 Func 대리자 예제 프로그램을 작성해 보도록 하겠습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test0202
{
class Program
{
static void Main(string[] args)
{
//Func 대리자 사용법 총 3가지
//1. 기존 메서드 지정
Func<string, string> _func1 = Print;
Console.WriteLine(_func1("1. 기존 메서드 지정"));
Func<int, int, int> _func2 = Sum;
string msg = string.Format("x + y = {0} 입니다.", _func2(4, 8));
Console.WriteLine(msg);
//2. 무명 메서드 지정
Func<int, int, int> _func3 = delegate (int x, int y)
{
return x + y;
};
string msg2 = string.Format("x + y = {0}", _func3(5, 10));
Console.WriteLine(msg2);
//3. 람다식 사용
Func<int, string> _func4 = x => { return "반환값은 : " + x + " 입니다."; };
Console.WriteLine(_func4(100));
}
public static string Print(string msg)
{
return msg;
}
public static int Sum(int x, int y)
{
return x + y;
}
}
}
실행 결과
이로써 Func 대리자 사용 방법에 대해서 알아 보았습니다.
감사합니다.^^
'개발언어 > C#' 카테고리의 다른 글
[C#] Parse(string s)와 TryParse(string s, out int result) 함수 (0) | 2023.05.22 |
---|---|
[C#] TryParse 숫자체크 (0) | 2023.05.22 |
[C#] Hashtable 사용 방법 (0) | 2023.05.19 |
[C#] throw를 써서 try~catch로 예외던지기 (0) | 2023.05.19 |
[C#] 전처리기 #if 조건부 지시문(디버그/릴리즈) 사 (0) | 2023.05.18 |