본문 바로가기
Programming/C#

[c#] Lambda 표현식을 파라미터로 받기

by 째스터 2020. 11. 10.
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);
	}
}


.net fiddle 링크

 

C# Online Compiler | .NET Fiddle

 

dotnetfiddle.net

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

댓글