728x90
Method에서 Lambda Expression을 파라미터로 받기 위해서 두 가지 방법이 있다.
1. Expression<Tdelegate>
2. Func<T, TResult>, Func<T1, T2, TResult>, ...
public class Program
{
public static void Main()
{
Console.WriteLine(Method1(x => x + " add string"));
Console.WriteLine(Method2(x => x + " add string"));
}
public static string Method1(Expression<Func<string, string>> expression)
{
string x = "Method1";
var method = expression.Compile();
return method(x);
}
public static string Method2(Func<string, string> expression)
{
string x = "Method2";
return expression(x);
}
}
Expression을 사용하는 경우 Lambda 표현식의 Expression Tree를 분석할 수 있다.
Lambda 표현식의 syntax를 분석해서 어떤 파라미터를 받아서 무엇을 하는지, 무엇을 리턴하는지 등을 알 수 있다.
728x90
'Programming > C#' 카테고리의 다른 글
[c#] DataTable Clone vs Copy (0) | 2021.07.08 |
---|---|
[C#] DataRow Clone하기 (0) | 2021.06.29 |
[C#] SqlParameterCollection 에러 (0) | 2021.06.14 |
[C#] IsNullOrEmpty vs IsNullOrWhiteSpace (0) | 2021.06.02 |
[c#] DateTime class 이용해서 날짜 가져오기 (0) | 2019.10.03 |
댓글